We are defining a language selector for 400 languages. Given the massive number of languages compared to other websites, we applied several mechanisms to reduce the complexity of the language list. The current design is shown below.

Design for the language selector

The mechanisms applied are the following: - Provide a short list to anticipate user needs. A list of six languages is provided based on the browser settings, the geographic area of the user, and previous selections. If the language is not in the list, the user can access a larger list of languages with the aids listed below.

  • Flexible search. The user can type the language he is looking for to reduce the list of possible languages. Search will be flexible so the user can type the language name in a different language.

  • A map for filtering. A world map divided in three regions is used to filter the language list (with the user region selected by default). The world has been divided in just three regions since defining more regions requires more precision in the selection and geography knowledge.

  • A list of languages arranged by script type and region. The list of languages has been divided in different geographic zones and languages are arranged by script type (to make it easy for the user to identify zones of interest in the big list). The list also highlights the languages which are likely the user is interested in.

More context information can be obtained from the project website.

Considering that language selection is a mechanism with a transient posture and it should not interfere the main flow of actions from the user. Is there any other mechanism (or combination of such) that can help to reduce a long language list with minimal distraction for the user?

  • 1
    You have already done the thing I would recommend... flexible text search. I can find no fault in your described implementation though there could be unmentioned details that are sub-par. Commented May 22, 2012 at 18:33
  • Quick question: do we know the language the viewer reads? In other words, must this interface be completely language agnostic? There are use cases either way (English user choosing a language vs unknown user selecting interface language) Commented May 22, 2012 at 21:19
  • 1
    I would generally expect that the language someone would want would be in their browser settings or location would get it - so your initial list of six would catch the vast majority of cases. The case where this is likely to break is when someone is not using their own computer, especially if they're travelling/living abroad. Are there other scenarios you're considering? The only thing I might add is an option to remember the language selected. For Wikimedia I can imagine it might also be quite handy to be able to multiply select a few languages for those blessed with more than one! Commented May 22, 2012 at 21:29
  • 3
    You are definitely on the right track. For your six languages, I would recommend the follow order: 1) browser settings 2) geo location 3) regional location 4)xxxxxx 5)xxxxx 6) English. Always have English on the top six, since this can be fallback option. In my example 1) English, 2) Thai 3) Thai/Chinese 4) xxxxx 5)xxxxx 6) English.
    – Daniel
    Commented May 23, 2012 at 2:55
  • ...continuing. I live in Thailand, but I don't speak Thai. My native language is Portuguese, but I always use English. Sure, you don't want to repeat languages on your top six, so you need to figure out that too.
    – Daniel
    Commented May 23, 2012 at 3:03

2 Answers 2


It's not a complete answer to your questions, but you should at the very least default to the language specified in the Accept-Language request header. That header will give you the language(s) the user's browser is set up to use (in order of preference).

  • I agree, using defaults usually is the quickest way help a user choose with minimal effort.
    – AsafBO
    Commented Sep 30, 2013 at 6:59

The flexible search sounds perfect... except that there's a chance the user can't read your instructions to search for a language, so a map is a great backup. The map should be able to zoom in to a country level, since continents have so many languages.

  • Not all languages are associated with individual countries. Some are associated with contiguous non-country areas. I'm not sure it makes sense to have a country level map. Since you'd then have to go an attribute each language to a country, and any mistakes on your part could easily violate the user's mental model.
    – Racheet
    Commented Sep 30, 2013 at 8:39
  • Associating a single language with a country might also get you into political trouble e.g Belgium, Canada, India...
    – oefe
    Commented Sep 30, 2013 at 19:11

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.