Explaining the Windows XP/Server 2003 Regional and Language Options Dialog

Sorting it all Out
Michael Kaplan's random stuff of dubious value
Be sure to read the disclaimer here first!

Explaining the Windows XP/Server 2003 Regional and Language Options Dialog

  • Comments 33

(This page was originally posted at http://i18nWithVB.com/win2k.htm but I thought it could use a wider audience)

Explaining the Windows XP/Server 2003 Regional and Language Options Dialog

Disclaimer: This page is not officially sanctioned by Microsoft. If it were, it would almost certainly be more polite. :-)

A lot of work was done to this dialog since Windows 2000, including massive shifts in terminology. Here is the handy-dandy conversion chart of the most important items:

Windows 2000 term

Windows XP/Server 2003 term

Regional Options

Regional and Language Options

Default User Locale

Standards and Formats

Default System Locale

Language for Non-Unicode Programs

Language Settings for System

Supplemental Language Support

There are many other changes, as well. While I do welcome change when there are confusing issues, I am not sure how much I welcome change that others will find to be just as confusing. I'll let you decide how you feel about this particular issue yourself....

Anyway, here are some screenshots for the three important tabs for the dialog:





The first change is obvious -- the settings that used to show up on the first tab are now spread across three of them.

Here is each part, explained:

Language for Standards and Formats - Located in the first tab, these are the preference that you, the user, has for items like date formats, calendar, preferences for text sorting, etc. Now most of these settings can be handled individually by clicking on the Customize button. You can think of this dropdown combobox as a useful way to be lazy and have settings made automatically based on the locale you choose. There are really no standards per se involved (such as sorting), but not everything there is a format so there had to be something else there.

I will talk about the Location stuff some other time.

Supplemental Language Support -- In Windows 2000 this was a list containing various familes of locales corresponding to lanaguage groups, but now most of the support is already installed and turned on. In fact, there are only two groups that are not:

  1. Languages that require complex script support, including Thai, Hebrew, Arabic, Hindi, Tamil, and all the rest of the Indic locales
  2. East Asian languages, i.e. Chinese, Japanese, and Korean

This information is in the second tab and is handled by two checkboxes. These two checkboxes control the installation of all the code pages, fonts, keyboards, etc. so that applications can support the particular language. You will probably be prompted for your Windows CD to install the files that you are in essence requesting.

The top of the second tab handles input methods. I will talk about that more another time.

User Interface Language - You may not have this control on your regional options at all; it is only there if you have MUI (the Multilingual User Interface) installed. This allows you to change the actual language of Windows itself. It has no effect, I repeat no effect, on your installation of Windows otherwise. At all. Period. If you think it will, then cure yourself of this delusion and realize that you do not need MUI to have a multilingual experience on Windows XP and Server 2003!

Language for Non-Unicode Programs (aka Default System Locale) - Located on the third tab, this setting is the one that controls, at the machine level, the locale that will be used for all conversions to and from Unicode for applications without Unicode support (like VB 6.0, for example). If you change the Default System Locale, you will be prompted to reboot afterwards (you may be prompted for your Windows CD first if you need to install some files). But I cannot stress it strongly enough: this is the top control on the third tab. You would not believe how many people mess this up and try to change the language at the top of the first tab under "Standards and Formats"! So think carefully and allow yourself to be one of the people laughing about the confusion, rather than one of the people being laughed at.

Incidentally, it also controls the font "language" that is used for the case of [primarily] East Asian fonts that have more than one name, based on language.

Under this are the various code pages you can install. I recommend you use Unicode and avoiding needing these things. :-)

Default Settings - Although the title is misleading, this checkbox located on the bottom of the third tab is incredibly useful in many situations. What is does is apply any changes you make on any of the three tabs to .DEFAULT, the default user profile (copied for all new user accounts), and several system accounts. In the case of keyboards, it copies all keyboards that have been selected by the given user whether they were selected at this time or not and applies them to the .DEFAULT account. The latter is very useful if you want the ability to switch keyboards in the logon dialog.

This setting does not exist in prior versions, which is a damn shame since people try all the time to e.g. set the default user locale on a web server and expect that change to be applied to their IIS. It does not immediately occur to most people that the setting only applies to the currently logged in user; unfortunately understanding is likely piss off any reasonable person since Windows 2000 does not provide any user interface to resolve the issue. Thankfully, much of the problem is taken care of with this one confusing setting.

That's all for now. Let me know if you have any questions or comments about this page!

Comment on the blather
Leave a Comment
  • Please add 2 and 5 and type the answer here:
  • Post
Blog - Comment List
  • The important question - well, *an* important question - is when are Microsoft product teams going to figure out the difference between locale, language and location? Windows Media Player v10 grants access to nationally-based music stores on the basis of user locale rather than location. Half the Office downloads on Microsoft.com specify a locale e.g. English(US) as a prerequisite, rather than a language (English); so they'd have you believe for example, that the English (or Irish) spell-checker is ONLY for people with user locale = English(United States). It seems that all the locales of non-English(US) still get very little attention, even after years of complaints from folks in the UK, Ireland, Australia, Canada, New Zealand, Singapore, South Africa, ....
  • I have to agree with you on this one -- we have a PM on our team who has been trying to sell the location stuff to all of the product groups that ought to be caring about *it* rather than the user locale....

    For the case of neutrals, the problem is a different one -- in Windows, neutral locales do not really exist except for resource loading. When people cannot even get the OS to recognize something they are less likely to trust it....
  • Also, a colleague of my once suggested that sometimes it is best to think of Microsot not as one big company; a more accurate model is that of a country with many warring factions that get together every four years to have a good olympic team for the world stage.

    :-)


  • Except some of the events only risk injury for the spectators... When I was there, the best description I heard was of 400 start-ups with a single marketing department.

    It would be a nice if there were APIs that generated the name of a language from a locale, so that appropriate lists could iterate over that. I swear everyone looks at the Language list inside Word and thinks that's the right way to present a set of languages. For a start it incorrectly sets expectations about the level of support available for each of thse listed locales. For many listed, there is no substantial support, and for many others there is no difference. But it's hard getting that message across in Microsoft.

    I can see more of the benefits accruing in the open-source world, where those arguments/discussions are carried out in public rather than having to pull together a bunch in PMs in dozens of areas who really aren't sympathetic to the cause.
  • A single marketing department? You must not have gotten around too much -- in my experience one could easily mistake two different marketing teams as coming from rival companies!

    For getting the name, LOCALE_SLANGUAGE does well -- it already exists and is used in Windows. I cannot answer for Word and Office but when we point out the invalidity of some entries (which we do) they point out they have shipped that way already. :-(

    I am not truly convinced that open source is particularly superior in this case, because in my experience the same mix of smart and dumb, internationally saavy and internationally retarded exist as any other company (including Microsoft). And language support is *never* given the priority is deserves....
  • I got around enough to have worked with you (briefly) on Access 2000/XP :-). Prior to that I remember one marketing department handling a press release from SQL Server to the effect that there would be no relational database built on Windows CE, on the same day as another team (partly housed in the same building) announced Pocket Access and ADO for Windows CE.

    I love backward-compatibility of bugs. Point 'em out in a spec-review ("let's get feedback in the beta"), in the beta ("postponed"), for next version ("sorry but we can't change it because X has deployed solutions based on that bug" or "I don't understand the issue, I'm new to this project").

    My assessment of the language support is that there are good folks like you scurrying around at one level, and then waaay above is SteveB etc trying to placate large international customers ... but in between are VPs, PUMs and GPMs who really don't give a damn in the scheme of things.
  • Yes, I remember. And I remember the fun and games on Pocket Access as well as when they did an encore for SQL Server CE Edition. :-)

    A little over two years ago I was told that my becoming an MVP for all of my work in the newsgroups on international support and MSLU was being turned down since folks were worried about how it would make Microsoft look.

    This was roughly two days after I was made the offer to go full time at MS, as a developer in Windows Globalization who was expected to keep up the very public presence in newsgroups and conferences. So I guess these sorts of mixed messasges happen all over....

    Re: language support -- the face of language support is different, these days. From GPMs like John McConnell who own strategic work on ELKs and LIPs to directors like Julie Bennett (the genius whosed group is behind the ELK amd the Windows side of the LIP) to group managers like Lori Brownell (recently named to the Unicode board of directors) to VPs like Brian Valentine, Will Poole, and Jim Allchin (who were all heavily involved in Starter Edition) to CEOs like Steve Ballmer (who was also involved in Starter Edition and who has promised language support all over the world that our team *will* deliver) to Chairmen/Chief Software Architects like Bill Gates who was also involved in Starter Edition and who sees as clear as any of these others and maybe even more clearly than some that the emerging markets are the next frontier. And all up and down the chain people are getting it.

    Its a whole new ball game, Mike. And its truly a pleasure to be a part of it. :-)
  • There are a whole bunch of people both inside and outside of Microsoft who have gotten good use out of

  • I have one web application created in asp.net. i hosted the website on one american server. As the site was on american server so i did all scripting for date checks and conversion by keeping in mind the format mm/dd/yyyy. Now after one and half year i have switched my site from that server to new server but unfortunatly this new server is in uk and that is why the date format configured on server is dd/mm/yyyy.

    As i have uploaded all the things on the server and have made it live as well so it is not possible for me to reinstall the server and change the date format i.e to change it to dd/mm/yyyy.

    Now the problem i am facing is server side script is doing date checks and display in dd/mm/yyyy, which is not required.

    I trued changing dateformat from global settings also but it didnt work although i was aware intitally also that it work. Because as per my exp i have concluded that somewhere in system the date format got stored at installation time and after that changing that is not possible without re-installtion.

    so, if anyone can help me how to change/set the date format in the application to mm/dd/yyyy, without re-installing the server. i think some thing like localize settings will have to do with it, but what i dont know...

  • Michael,

    you state:

    "Default Settings - Although the title is misleading, this checkbox located on the bottom of the third tab is incredibly useful in many situations. What is does is apply any changes you make on any of the three tabs to .DEFAULT, the default user profile (copied for all new user accounts), and several system accounts."

    .DEFAULT is not the default user profile, it's the profile used by the logon desktop. The default user profile is stored in (by default!)

    %SystemDrive%\Documents and Settings\Default User\NTUSER.DAT

    http://blogs.sepago.de/helge/2007/11/19/why-is-almost-everybody-wrong-about-hkudefault/

  • Um, as I said: "the default user profile (copied for all new user accounts),". That is one of the THREE places it is revelant to.

  • Michael,

    i misread what you'd said. Er, maybe the coffee hadn't kicked in when i read it. Sorry about that.

  • No worries - it ain't like they made it easy! ;-)

  • I find it easy enough (after a fair bit of reading - including this excellent blog), although some of the regional settings in the GUI aren't quite consistent with the unattend settings.

    Obviously, this won't work:

    [RegionalSettings]

    Language="East Asian"

    Nor can the system locale be identified for what it really is (as i understand it) - a code page:

    [RegionalSettings]

    CodePage="Latin 1"

    Nor is there GeoId option:

    [RegionalSettings|Unattend]

    Geoid=Australia

    I guess that's what os upgrades are for. :-)

    Btw, i came across this interesting page about adding new timezones to sysprep.inf.

    http://blogs.technet.com/askcore/archive/2009/07/13/adding-new-timezones-to-windows-xp-windows-server-2003-sysprep-inf-deployments.aspx

    I suppose i'm hoping for a couple of other "undocumented" methods for the regional settings section.

Page 1 of 3 (33 items) 123