The question is a simple one: what the hell does HTTP_ACCEPT_LANGUAGE mean?

The answer is also quite simple: IT DEPENDS.

The user is sending information from their browser, and could mean any of the following things:

  • language/locale to use for formatting/collation preferences
  • language/locale to use for the UI
  • language/locale about which to provide content
  • location for which to provide information

Now sometimes all of the settings will be the same. It is obviously more common for that to be the case. But it is a huge Internet and frankly there are a lot of times that they're not the same. It is unfortunate and all of these different items have to be filtered through a single setting across all of the browsers. But life is about dealing with things as that are, not as we want them to be.

It is therefore importantcrucial to recognize that a user may have any of these in mind, and be careful not to assume too much based on the HTTP_ACCEPT_LANGUAGE -- giving them an easy way to change the settings if you assumed more than they wanted you to....

 

This post brought to you by "Ǯ" (U+01ee, a.k.a. LATIN CAPITAL LETTER EZH WITH CARON)