In determining which language to display content in by default, there are, as far as I know, three basic methods:

  1. Examine the Accept headers sent by the browser.
  2. Use IP geolocation to determine the user's location and guess an appropriate language.
  3. Force the user to explicitly select a language, as exemplified by Wikipedia.

It seems to me that option 1 is far more reliable, as the default headers sent by the browser are the same as the OS's interface language, which will normally be a language the user understands. On the other hand, geolocation doesn't reveal anything about an individual user's preferences; it only reveals what the majority in a location prefer and has a tendency to annoy and/or confuse people who may be traveling (how come Facebook suddenly changed to Korean?).

For these reasons, it would seem obvious that all the major sites would be using option 1. However, my experience as an English speaker living in Korea shows that the major sites (such as anything by Google, Facebook, Skype, etc) all use option 2. Why? If I create a multilingual site, should I risk annoying users such as myself and choose option 2, as well?

EDIT: As for option 3, I think there's a good reason why most sites don't follow Wikipedia: It's a terrible way, because it forces the user to configure something that the site should figure out.

Many people in the answers and comments have mentioned making it easy to change the language. I agree that it's important, but I think it's a bit off-topic unless you're recommending option 3, because this question is about choosing the default language.

EDIT 2: I'm especially interested in the reasons why many sites do things the way they do. Option 2 seems incredibly obvious to me, but I assume that the major sites that have chosen option 1 must have some sort of reason for their choice.

  • Geolocation may not be the best idea since many people travel. There will always be people who don't know their country's official language(s). If users are using a proxy in another country, that will be a problem. There's too many ifs to rely on an IP address. Commented Dec 7, 2011 at 1:02

2 Answers 2


What's the best way to determine users' preferred language?

Ask - include a language selection dialog on every page and abide by the user's choice.

The easiest way to to manage user preferences with this method is to host localized/internationalized content under distinct domains or URI's - e.g. "domain.com":"domain.kr" or "domain.com/en/index.htm":"domain.com/ko/index.htm").

There is no need to redirect users who land on a page if you include a language selection dialog and you will not have to worry about issues with search engines indexing all of your content.

Wikipedia offers a great example of this technique in practice (though the "Languages" dialog which appears in the left navigation for a specific Wikipedia article could be improved upon).


... my experience as an English speaker living in Korea shows that the major sites (such as anything by Google, Facebook, Skype, etc) all use option 2. Why?

Are you browsing to the .kr or .co.kr top level domain? (If so, this would be the expected behavior for a site which maintains multiple top-level domains to assist localization/internationalization - i.e. here in the USA I can browse to google.co.kr and see the Korean-language version without being redirected to English content)

Edit #2:

I think there's a good reason why most sites don't follow Wikipedia: It's a terrible way, because it forces the user to configure something that the site should figure out.

Maintaining a direct correlation between URI's and localized content (as Wikipedia does) is the gist of my suggestion, not the Wikipedia home page (which could just as easily redirect based upon the user's request headers).

Most Wikipedia users do not arrive at the homepage by typing in the domain name, they're following links or entering searches in their native language (which is why having a distinct URI scheme for each language makes so much sense) - you could use content negotiation instead of a distinct URI:language mapping, but then you've created the problem you claim to wish to solve (getting the user to content they can read) and, whatever you do, you do not want to redirect a user who already knows what he or she wants.

  • 2
    I live in germany and every time i go to google.com i get referred to google.de, which defaults to german. despite having english OS and browser every time my cookies are cleared i have to reset the preferences to english. even more annoying is that it's fairly difficult to download chrome in english (even tho i have languages in google set to english i get dropped on the german chrome download page).
    – xyious
    Commented Dec 6, 2011 at 18:12
  • @xyious - Are you presented with a "Google.com in English" link after you're bounced to google.de? (good reason not to offer Google as a best practice example in this case)
    – danlefree
    Commented Dec 6, 2011 at 18:20
  • Just opened IE since I never use it and checked, no Link and not even an obvious way to change the language to english anywhere. The new google toolbar thing at the top of the page has a cogwheel in the right corner that gets me to preferences. When I go to MSN.com I get a javascript popup that asks me to confirm .com or go to .de. amazon.com is the standard american site but has a german link at the top of the page to go to the german site. yahoo.com redirects me to german but has a link to go to the US site.
    – xyious
    Commented Dec 6, 2011 at 18:26
  • @xyious - Assuming that you decided to the downvote this answer, can you explain why you believe that MSN, Google, and Yahoo's behavior is preferable to Wikipedia's ..? (sounds like a hassle)
    – danlefree
    Commented Dec 6, 2011 at 18:41
  • I don't like MSN, Google or Yahoo's behavior. I'm especially unhappy with how Google handles it. I just downvoted the answer because (as i said in my answer) you don't answer the question. The landing page of wikipedia does not seem optimal for any other page, really. Most websites that have content in multiple languages will have very few languages and it would seem that not displaying any content in favor of a full page language selection is not optimal. Which is why I would display some content on the landing page in the language that the browser uses.
    – xyious
    Commented Dec 6, 2011 at 19:12

I'm not certain, but I suspect that the answer is most users don't bother to configure their browser's language settings, so the geolocation is as accurate if not more averaged over all users.

It doesn't really matter much whether you use the browser headers or geolocation to select the default. The two things which really matter are:

  1. Make it easy for the user to override the default. Note that this applies not just to language settings but also, if relevant, currency settings in a shopping checkout.
  2. Do a good job. I've seen websites where the "Spanish" localisation also includes some sentences in Catalan and others in Italian: that screams, "this site was made by idiots".
  • If users don't configure their browser's language settings, then the browser defaults to the OS language (at least in the browsers I've tested). This should theoretically be more accurate, since computers sold in a given country will likely be set to that country's default language (providing results that are nearly the same as geolocation), but people who are traveling will generally have an OS in a language they know. So, I suspect that users' configuration choices aren't a significant factor. Commented Dec 6, 2011 at 13:53
  • @ScottSeverance, I think that actually people who are travelling will generally have whatever language the owners of the Internet café decided to install - which will be a local language. Commented Dec 6, 2011 at 14:08
  • Unless people use their own device to visit a webpage (like smartphone, netbook, notebook, ipad) which would seem far more common than internet cafe.
    – xyious
    Commented Dec 6, 2011 at 19:14
  • @xyious, in general using your smartphone's data plan in a foreign country will cost you insane amounts, if the roaming scheme even exists, and you might be surprised how hard it is to find public-access wifi in a lot of countries. But this is all an aside to my main points, which are to let the user override the default (something that not even Google does very well), and do the localisation well. Commented Dec 6, 2011 at 19:50
  • @xyious, Peter Taylor: There's a very real use case here: someone who travels with a laptop. Public wireless is readily available in many places around the world. When I had a layover in Dubai a couple of years ago, I was disappointed to find Facebook and Google suddenly change to Arabic, although that's a language I don't know. I was using my own laptop with an English OS and browser. Commented Dec 6, 2011 at 23:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.