Sign up ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

Imagine a site that's available in multiple languages. The language is detected automatically by looking at the IP or the browser header. But that's not bulletproof, so a few users might end up on a page in language they don't understand.

I am wondering what the best way is to present the language selection?


download bmml source – Wireframes created with Balsamiq Mockups

Q: Should the languages in the language selection be listed

  1. translated into current language, used to display the site in (good if the detected language was correct)?
  2. native name of the language, so everybody looking for their language could see it in the very same language (good if the detected language was not correct and users don't know the current language)?
  3. always in English assuming most users would understand this?

Feel free to add if I missed something!

share|improve this question
This is an interesting question. For the language guessing, looking at the browser headers is good, looking at the IP address is bad. The language depends on the user, not on the user's location. I cannot read japanese, and even if I take my computer with me in Japan I cannot read japanese. A contrario, I can read german, although I am in France. – Nicolas Barbulesco Mar 25 '13 at 15:50
Option 1 is terrible. How would you find your language if it's all in characters you don't know (like arabic in my case)? The only option is to pick one by chance until you get an alphabet you can understand. – AndSoYouCode Mar 26 '13 at 6:55
Française is a French woman. The language is called Français. – gerrit Mar 27 '13 at 12:23
@gerrit Sorry. I was so focused on getting the cédille right that I messed up the word itself :-) – greenforest Mar 27 '13 at 17:52
@Iconoclast — What the browser sends is not so meaningless. By default, the browser usually sends the primary language of the OS. Safari does that. Firefox is particular, coming in different flavours, and he sends the language of its version. I mean : when you download Firefox you choose the Firefox in french, for instance ; then by default Firefox sends french. – Nicolas Barbulesco Apr 2 '13 at 15:07

13 Answers 13

up vote 151 down vote accepted

Option 2 is the best option, because you'll recognize your own language regardless of your knowledge of other languages (be sure to also provide charactersets if you support for example japanese)

Problems with options 1 and 3

Option 1. If you don't speak / understand the current language you may not recognize your own language. In the example germans would have it the most difficult.

Option 3. English is the easiest to implement because as you mention most people will understand English. However if your website has translations available, you probably expect visitors with poor English skills..

You could also make a dropdown with a combination of the list in options 2 and 3. eg. German / Deutsch

share|improve this answer
100% agree! Or reverse the scenario a bit, as an English Speaker imagine if you were prompted to select a language, and all you saw for English was 英語. Keep it native and there will be no confusion. – Austin French Mar 25 '13 at 13:08
My daughter fiddled around with her DS and changed the menu language to Japanese. Imagine how much fun I had finding which menu was for language selection. I think they had selected option 1 for the language screen so it was a lot of trial and error to get back to English. – Michael Brown Mar 25 '13 at 17:46
I once had the joy of resetting an old Nokia 3210's language from an Arabic script to German. Nokia chose option 1 at that time. I had to use a second identical phone in parallel to even only find the language selection... So @Mike, I know what you mean – Tobias Kienzler Mar 25 '13 at 20:58
Be sure you have language names written correctly. It is NOT sufficient to run them through the automatic translator/online dictionary. Few things jar more than the name of your mother tongue written with an ugly typo. – Deer Hunter Mar 26 '13 at 8:21
I have always wondered why there ever exists a solution in using the current language to name other languages. Especially if the default is already not your native language. I figure it to do with the programmers having a list of translations for every language, and their code just pulls the list of selectable languages AFTER translating it for the current view... I can think of no situation Option 2 is not the most preferred solution. – deed02392 Mar 26 '13 at 12:18

Option 2 is the way to go as you should always show languages listed by the way they are written in that language. It is the way both Wikipedia and most companies that deal in many languages do it. Here is how Apple handle it:

enter image description here

Problems with the other options
Option 1 is a headache to maintain as you need to have the name of every language in every other language. It also doesn't help someone to find their language as they have to first try to translate the name of their language into the language of another language that they may not even speak.

Let's say you were in China, and the site language was Chinese. How helpful would this list be to you?

enter image description here

It's a list of languages names written in Chinese, which you probably didn't even realise. This just illustrates why you shouldn't consider option 1.

Option 3 is just an English focused version of option 1, and should be avoided for the same reasons. English to a Chinese person is the same as Chinese to an English person.

share|improve this answer
+1 the first picture is an awesome example @JohnGB – greenforest Mar 25 '13 at 14:49
@MSalters: It likely sorts according to an IETF ISO 639-* langage tag. With the 2 letter tags, ignoring language variants, the list becomes {da, de, en, es, fi, fr, it, jp, kr, nl, no, pl, pr, ru, sv, zh} – Jean Hominal Mar 25 '13 at 17:37
@JeanHominal: interesting observation, but not obvious at all. I think it is a bad idea to sort on something you don't show. To a user, it might as well be a random order. – André Mar 26 '13 at 9:03
@EricDong Seeing as nobody before you pointed that out, I think it's safe to say that it is meaningless to show the list like that to someone that may not speak the language. – JohnGB Mar 28 '13 at 15:49
+1. That's so much win. – user54609 Mar 28 '13 at 20:09

Similar to Vijay's response, using a flag to indicate the country of origin of the language is easy to interpret. You don't need to indicate the English name for the language unless it's English -- use the native name only in all cases. I've seen it used many times, including in written user's manuals. I'm Canadian and have often purchased products with instructions in several different languages. Guess how many times I've seen a Canadian flag for the instructions I could read? Never. In spite of that, I never had difficulty understanding that the UK flag was for the English instructions.

share|improve this answer
Bad advice. You are too tolerant. If I were you, I would call the manufacturer of the product and say : “You forgot the instructions for me. I am in Canada. I see some flags, but mine isn't there.” – Nicolas Barbulesco Apr 20 '13 at 13:52
Seriously? You down-vote me for that? I hope you're joking. I call it being practical. Would you seriously expect a flag for every English-speaking country in the world? Like I said, I had no trouble figuring out that the flag was indicative of language and not country. – Bill Dagg Apr 20 '13 at 18:38
Bill. You did not get it. Flags are for countries, not for languages. This is simple. It has been discussed a lot in – Nicolas Barbulesco Apr 21 '13 at 6:53
You're bordering on rude, my friend. – Bill Dagg Apr 22 '13 at 0:37

Anyway while what others have answered is good, it doesn't get to the larger picture. I will give you what I think is the IDEAL answer.

Basically, this answer provides MULTIPLE clues (rather than just a single clue) for language selection.

First is the name of the language, (as per the answers above), as it provides a basic interface for any english literate person.

Second is the name of the language in it's own native script, for a basic native language literate person. e.g. enter image description here

Third is a flag for the country. For languages spoken in Dialects and common countries one can use the Country of origin, or the country of speech. E.g. ENGLISH (should have UK Flag), ENGLISH UK, ENGLISH US (should have their respective countries flag). A visual clue bypassing the thinking part of the brain.

Below is a poor screenshot of such an example, from the website enter image description here

Many applications I've seen have implemented this correctly, and I urge the rest to follow this.

Some other features required are quick filtering of displayed languages by keyboard, like what listary does for lists, to narrow down results. Like if searching specifically for English (Singapore).

Furthermore the placement of the language switcher matters a lot. It should be ideally located above the fold (i.e. on the first page itself) somewhere. The general practice is the top right corner, below any Profile info you might have. IT IS A MUST for first time visitors, it can be hidden for repeat visitors (i.e. the site is already in their preferred language) and accessible via the second location. The second common location is at the bottom of the page, either centered or left aligned. Though I think it should always be available at first glance. The same applies for applications.

Ahhh this is one pet peeve of mine!! For example see Chrome! (I know it's an application, but bear with me) It has the most awful UX for changing the language to english from an unknown language for the user. It requires an inordinate amount of clicking and utter confusion!!

  1. Menu icon
  2. Settings menu item (no icon!! to identify it clearly/easily when using an unknown language)
  3. Click on Show Advanced Settings text.
  4. Click on Language (absolutely no way to find it in an unknown language)
  5. Click Add
  6. Select your language
  7. Move it to the top of the screen.
  8. Click on the button on the right to make it the default chrome language. (Some languages cannot be done this way either, and can only be used for spelling! They should just seperate out these dialogs, and not combine the spelling and Language selection dialog!, as the most common case is presumably language selection, and a very distant one is spelling checker selection).
  9. Restart chrome!

Some interesting links I found with contrary views and other useful resources.

share|improve this answer
Never mix flags with languages. German for example is spoken in Austria and many other countries too, and they are not to belong to Germany anymore. You would need a dozen flags for most languages in your list. The English name is meaningless to most users, so don't put that first. – toscho Mar 26 '13 at 18:58
Yes, and that's why I said country of origin for a particular language as it is the most commonly used symbol for a language. While I agree that there is ambiguity here, this additional clue does help most average users. It might not be clean, or efficient but it works, as it is a common idiom. – Vijay Mar 28 '13 at 3:37
Please, don't use flags... I'm Austrian and we speak German, as people in Switzerland, Luxembourg, Lichtenstein do. Then there're people like the Sudetendeutschen in the Czech Republic, the Heidebodendeutschen in Hungary, the Siebenbürgner Sachsen in Romania, etc. Having one flag to rule them all can easily be an offense. – kaiser Apr 29 '13 at 10:15
ok. ok. You guys have convinced me not to use flags, even though they are so pretty and colorful! Maybe we should design new flags for languages? I remember there was some initiative that did that. – Vijay Apr 30 '13 at 3:51
English is by far my best language, but occasionally I might want to use an application in Spanish instead. Everyone who speaks Spanish, including me, knows that "español" means Spanish. I don't see any reason at all for a menu item to say "Spanish - español" instead of just "Español". I admit that including the English name is useful if I want to switch to a language that I can't read--but that's not very often! – Tanner Swett Jan 13 '14 at 2:46

It's very important to understand the real needs of your actual users. For example, the assumption that "people will recognise their own language" may not be true - I've found cases where a proxy user is involved, providing assistance to people with limited literacy in both English and their native language. In such a situation, dual labels - in both English and the native language - are needed.

Overall, there are so many practical and cultural factors in play that you MUST test with properly representative users to validate and refine your design. Don't look for abstract principles or some magic "best practice" formula here - see what actually works.

share|improve this answer

Option 2 is definitely the best way to go. No flags, please!

I'm speaking natively Czech, I work in English, understand basically several different languages and I was doing localization from English to Czech (including typefaces) since 1993. This means I'm a total geek, however since I was a kid, I'm trying to focus on my (read: user) experience.

Borrow someone's cellphone, switch it to Chinese and then let him fix it back. If he'll be successful, the UX is correct.

share|improve this answer

Option 2 is the best, since user can always recognize its own language.

There's is a small pitfall though. If you present language selector as dropdown, user won't see any values except current auto-detected language, unless he clicks it. And if user doesn't understand currently selected language - say, already mentioned Chinese, he might won't even notice that you have a language selector at all!

Therefore you'll either need to have clearly visible non-dropdown list of languages if you have enough free space on some side bar, "confirm auto detected language" splash screen or, if you still choose to use dropdown, some universally understood caption near it (English "Language" seems to be least evil, most people should recognize at least this world even if their English is otherwise bad).

share|improve this answer
+1 Agree on the pitfall. Guess that's why so many sites use flags to represent languages. Tried to get around with the globe icon but I'm aware not all users would understand. – greenforest Mar 25 '13 at 15:13
@greenforest and unfortunately step on toes in doing so. language simply does not equate to flags/nations. Many nations have multiple languages and many languages are spoken in different nations. – Marjan Venema Mar 25 '13 at 18:16
@MarjanVenema I know :) and countless posts on why not to use flags to represent languages – greenforest Mar 25 '13 at 18:41
Option 2 with a reference to the selection box with the current language's flag is probably the best combined solution. – deed02392 Mar 26 '13 at 12:21

We work with embedded systems where space is always very limited. For this reason we use the 2nd option in the native script.

My experience is that people tend to skip lines the can't read.

An advantage of this compared to Vijay's solution is that users do not need to look/search for there language between lines they can't read. The user has to scan each line to see if some native script is available as all lines start of in the site's script with the native script behind it.

Using only the native script the user will only really "see" the lines in his/her own script. thus a Chinese will only really "see" the 2 lines in his/her own script and skip all else.

share|improve this answer
“We” ? Who, “we” ? – Nicolas Barbulesco Mar 26 '13 at 15:17
Our company, our team. just WE – Vincent Mar 27 '13 at 14:17
@ Vincent — You mean “my company, my team”. You speak like Louis the Eleventh. – Nicolas Barbulesco Mar 31 '13 at 21:46

Interesting question.

The way to go is : native.

Thus, a person speaking only chinese — there are millions of them — is able to choose chinese. This is not possible if you write only “chinese”.

Here is the choice Apple made : the first dialog in Mac OS X.

Here is how the UN welcome us :

It is nice when you have items in non-latin characters in the list of languages, it makes the site cosmopolitan. I like seeing exotic characters, it gives me a good impression of the site. In addition, when the list of languages has items in non-latin characters, this list has a UI role : it attracts my eye, and when I want to change the language I know instantly that this is the place to go, without reading.

share|improve this answer
I find it somewhat amusing that the list of languages on the UN web page is sorted by the English-language name of the languages. So: Arabic, Chinese, English, French, Russian, Spanish. I can only imagine the extensive meetings required to come up with that ordering... – Mark Bessey Mar 25 '13 at 19:10
@MarkBessey It was easier than randomizing the sort order for each page display... – Michael Kjörling Mar 26 '13 at 10:23
@Mark — The Vatican's site has a mysterious ordering of languages. Why chinese first ? Why german before english ? God works in mysterious ways. – Nicolas Barbulesco Mar 31 '13 at 12:13

One thing to remember is that languages can be common across countries but they might be spoken differently. For example, Spanish in Spain will be a little different from the Spanish spoken in Mexico. A recommended way to handle this would be to go with the approach Microsoft has which allows the user to select the language based upon the country and the language of that country.

enter image description here

That said, I would recommend going with option 2 as that allows the user to determine which language he wants to translate to and can also quickly associate with the language transalation.

share|improve this answer
This list is weird, and lacks consistency. Surprising, from Microsoft ? ;-) – Nicolas Barbulesco Mar 25 '13 at 17:54
Most regions are written in the language of their item, but Microsoft definitely has a problem with Maghreb. We have “Algeria - Français”, “Tunisia - Français” and “Morocco - Français”, but “Algeria”, “Tunisia”, “Morocco” are not french. In french one says “Algérie”, “Tunisie”, “Maroc”. – Nicolas Barbulesco Mar 25 '13 at 17:58
A contrario, Microsoft knows how to speak french for “Suisse”. But I find really weird that “Suisse” and “Schweiz” are not together. – Nicolas Barbulesco Mar 25 '13 at 18:00
Having only english for Cyprus is weird too. Microsoft has greek for Greece. So Microsoft has greek. I am not aware of any difference between the greek language written in Cyprus and the greek language written in Greece. If there are differences, they would be tiny. This is the same language. – Nicolas Barbulesco Mar 25 '13 at 18:09
You need to make sure that this list doesn't make localization decisions as well. (Example, an English speaker living in France) Any non-native speaker should have the ability to see the site in their translated language, if it is available. – Zoot Mar 25 '13 at 18:43

The only valid option is #2, as it's the only one that ensures a visitor is going to recognise a language name.

In the other two scenarios you're assuming the visitor is going to understand a second language, and that's a big assumption.

share|improve this answer

I like the way Wiki did it. They are using Native name of the language, also in alphabetical order. Alphabetical order is dynamic, so the list will change depending on the language being used. For example in English it's ABC and in Russian its АБВ (ABV) so the list of language will change respectively.

I prefer this way because its easy to find a language, its easer to spot the Russian characters, also by using dynamic alphabetic order I don't have to switch, my brain, between Russian and English.

share|improve this answer

My vote goes for option #2. If you're looking to change the language because you don't understand whatever the default is, it will be a lot more effective to see the choices in a language you do understand. That's kinda the point, right?

I also ran across this article from 456 Berea Street where the author prefers a combination of your options 1 and 2, (although he/she doesn't really state why).

The name of the language as text in the language itself, possibly followed by the name of the language in the language of the current page.

share|improve this answer

protected by JonW Mar 26 '13 at 15:08

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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