Custom Locales and Locale Names in Windows

I’m Shawn Steele, a Senior Software Development Engineer with Windows International and I love playing with strange locales.


Users choose their user locale during system setup or through the Regional and Language Options Control Panel.  In Vista (& Server 2008) we’ve started allowing “custom locales” to be installed by the machine admin for the users to choose from.  Those locales can be any locale the user creates with the Microsoft Locale Builder tool (available at ). 


For an application developer the most interesting things about custom locales are that:


A)     They change the data returned by system APIs such as GetLocaleInfo(), perhaps even to unexpected values, such as short or long strings, or unanticipated orders, and

B)      Custom locales all get the same LCID (locale ID) and are instead differentiated by name.  This makes it important for applications to either use LOCALE_USER_DEFAULT or use locale names instead of LCIDs.  If your application doesn’t do this, then users may have a reduced experience with your app.


To support the named locales we added new Ex versions of the NLS functions that take locales, such as CompareStringEx(), GetLocaleInfoEx(), GetDateFormatEx(), GetTimeFormatEx(), etc.


For more info about custom locales and locales in general (and other globalization issues) you can look at my blog, there’s even a Klingon custom locale there J.  Kieran & I also wrote an article for MSDN which is available at


Shawn Steele

Senior Software Development Engineer

Windows International

Comments (4)

  1. anony.muos says:

    Please release the final Locale Builder on the download center. Why is MS considering limiting it to everyone?

  2. Brian Cost says:

    Hi Someone,

    I talked to Shawn Steele, who wrote this post and he had this response:

    Thanks for the question.  We’re working on some additional changes before taking the tool to final release. In the meantime, the beta is available for anyone who wants to download it. If you’ve been using the beta and you have any suggestions as to how it could be improved, we’re very eager to hear them. Thanks!

    Karin Meier

    Windows SDK Team

  3. enricoc says:

    Hi Shawn / Karin,

    I'm currently working in the Office Proofing Tools development team in Dublin.

    Is it possible to add a customized user input language LCID (Controll panel -> change keyboard or other input methods -> Change keyboard)? As far as I can see this was done in XP and Vista only with the Service Packs.