Windows – Why do the Windows Date and Time Format Settings impact the default Language for Applications

date timelanguagewindows

This behavior has been bugging me for ages. I live in Germany but I prefer my operating system and all installed applications to be in English.
So whenever I install a Windows system of mine, I install the English version thereof. I then change the location (Control Panel -> Clock, Language, and Region -> Change location) to "United States".

However, like 90% of the time, when I install an additional application (like VirtualBox for example), it will pick German as the default language. This behavior can be noticed all over the place.

The only way to change this is to change the Date and Time format. As soon as I change that to "English (United States)", all of the affected programs will use the English language. I can then even adjust the profile back to whatever I want (which is what I do) and I finally get the desired result.

Why does this happen? Are 90% of all programmers unable to use the right API to determine the users desired language? Is this the way default language should be determined under Windows? Am I just setting up my system incorrectly?

Best Answer

Am I just setting up my system incorrectly?

In a way, yes. You certainly aren't reading the tab that you are looking at.

This is is a quick, dirty, incredibly lazy way to guess language settings that's probably right 99% of the time.

Wrong. The installer programs are using the Windows National Language Support API to obtain the system locale and language that you've configured, to determine what language to prompt you in. The locale information is set with the "Formats" tab in that part of Control Panel.

You're using the "Location" tab. Locations are different to locales and languages, not least because the .NET API for them doesn't really function on Windows prior to Windows NT version 6.1. The locations API is a completely different one, that doesn't even exist on Windows XP prior to Service Pack 3. Installer writers who want to have an installer that works on Windows NT prior to version 6.1 will use the locale API, because that's what exists and what works.

It's also what's right.

There's a difference between a geographic ID and a user interface language, and you're getting them exactly backwards. The location or geographic ID of a computer is where it physically is, and that's what you need to set on the "Location" tab in Control Panel. The UI language is the language that you want to see stuff shown to you in, and that's set in a combination of places elsewhere; including the locale settings that are set by the "Formats" tab in Control Panel.

It does say, at the very top of the "Location" tab, what it is for. Why do you think that setting your computer to obtain the "local information such as news and weather" for the United States, because you've told the system that you are physically located in the United States, is the right thing to do when you are physically located in Germany? Locate your machine where it physically is, and set the language and locale to the language and currency/number/date formatting that you want to see on the user interface.

In short: Nearly 100% of the programs from different vendors aren't operating as you think. It's your thinking that's wrong, not the programs.

Related Question