I'm working on something for a pitch of sorts and would like to look into other approaches to the language/region problem. These are the variations I remember seeing.

  1. clickable Flags or language names
  2. some kind of automatic detection on site load
  3. dropdown menu of country/language
  4. landing screen demanding region selection before entering site

Is anyone aware of any others?

  • 2
    This topic has been discussed thoroughly. If you look at the sidebar of related questions and the tag history for i18n and L10n, you'll find all the answers you need.
    – dnbrv
    Mar 18 '12 at 15:34
  • 1
    possible duplicate of How to graphically represent a language
    – ChrisF
    Mar 19 '12 at 13:27
  • 1
    #2 and #3 suffer from the assumption that a person's language is based on their current location. That's a reasonable assumption, but hardly acurate. #1 suffers from the assumption that languages equate to nation flags. So, #4!
    – DA01
    May 30 '12 at 19:27

The European Union also uses ISO 639-1 codes. These codes are obviously more difficult to understand to the uninitiated (even if many of them are fairly transparent) but they are much shorter than language names and much less obtrusive than flags. Flags are actually terrible: graphically annoying, not always all that clear, semantically incorrect and even sometimes offensive (one language != one country).

On the EU website, the full language name is used on the home page and in a dropdown menu in the top-right corner whereas the codes are used in the body of the page to signal the availability of different documents in different languages.

See Wikipedia for more details on this norm and this page for an example

  • Thanks, @Gaël Laurans. Do you have any thoughts on auto detection?
    – Sinclair
    Mar 18 '12 at 15:20

I'm not sure if this falls under your method "2", but you can also use javascript to detect browser language, OS language, and user preferred language (e.g. even if you have English OS, you can override it with another language in your control panel)

navigator.browserLanguage navigator.userLanguage navigator.systemLanguage

This technique is used by big portals like Yahoo and Microsoft that do extensive localization.


Subdomain names (en.domain.com; es.domain.com) or, if the budget and infrastructure allows, individual TLDs (domain.com; domain.es), could be a neat way to differentiate content on top of a more engaging selecting mechanism.

Ultimately the approach depends on whether the primary purpose of selection. Does the user choose a region to see information related to his location (a map picker with a backup dropdown would be reasonable)? Or is the website geo-agnostic and it's only the interface language that gets changed (flags are pretty straightforward, but make sure not to offend anyone w/ US/UK mixup :)?

There's a great article on UXMAG that I personally found to be convincing enough not to use automatic detection tools. If you are a UK businessman on a business trip to Singapore accessing a Japanese hotel reservation website, what should the default UI language be set to? How would it differ if you're accessing the website from your UK laptop or from a local internet cafe?

That's close to rocket science but a solid pointer is to make language/region easy to change once an option is committed to (or set as default). There are few things that would frustrate me more than browsing an asian website that supports multilingual user interface but would not have visible means of changing it at the top right corner.

  • using top level domains (.com / .es) is terrible advice: it doesn't allow users to switch languages as cookies aren't shared between those domains. You could of course use multiple top level domains but language should be independent on the domain.
    – paul23
    Jan 16 at 15:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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