Indicating language choice: flags, text, both, neither?

At the office we recently had a bit of a discussion about how language choice should be indicated on the web. The specific case we were debating is when a site uses one primary language and contains sections of information in one or several other languages.

Visitors who want to access the information in one of the secondary languages have to somehow be made aware that they can select another language. This is assuming the site does not use content negotiation to automatically display information in the visitor’s preferred language (which is a bad idea anyway).

Four options come to mind:

  1. The flag of the country most closely related to the language.
  2. 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.
  3. The flag of the country most closely related to the language plus the name of the language as text in the language itself.
  4. A neutral flag plus the name of the language as text in the language itself.

Out of those options, I’d say that using a flag only is a big no-no with the possible exception of linking to a site specific for the country represented by that flag. And even then I think displaying a clarifying text next to the flag is really helpful.

From the W3C Working Draft “Authoring Techniques for XHTML & HTML Internationalization: Specifying the language of content 1.0”, Technique 16: Don’t use flags to indicate languages:

Flags represent countries, not languages. There are many countries that use the same language, and numerous countries that have more than one official language.

Jukka Korpela has a more in-depth explanation of the problems in Flag as a symbol of language - stupidity or insult?.

In International Web Usability, Jakob Nielsen does state that The best visual symbol for a language is probably a flag. but then goes on to point out the Flag Problems.

The W3C, Jukka Korpela, and Jakob Nielsen (and others) all state that flags should not be used to indicate language. Instead the name of the language in the language itself is the preferred method.

What about using the name of the language in text and the flag of country most closely related to the language? Well, the name of the language would remove any ambiguity assuming people read the text and don’t just scan the flag icons, looking for the flag representing their country. However, the flag may still cause irritation and confusion, so I don’t like this option.

Another option is to use a neutral flag or other symbol to indicate language choice, and combine that with the name of the language (assuming there is only one secondary language to choose). The Mac OS X System Preferences window uses the flag of the United Nations for the “International” control panel. I’m assuming they did not just pick that symbol arbitrarily. Not all countries in the world are members of the United Nations though.

Another possible symbol would be a globe. But then there’s the problem of choosing a suitable position for the globe, i.e. which part of the world it displays. The typical US centric position is far from optimal for the entire world.

After looking at the available options I definitely prefer number 2 in the list above: 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.

Are there any better options?

Posted on April 18, 2006 in Usability


  1. Interesting topic this, and something that has only just recently sprung to my attention. I think that is probably the best solution, as you mentioned about the flag associated with a country. What happens when you use something like Spanish or Portuguese, which are associated with many countries.

    Maybe, a flat-world in the shape of a flag! Then you have the entire world (and not just US-centric) and a neutral flag shape. However, I don’t many people will recognise/associate this with language, so it defeats the purpoes.

  2. April 18, 2006 by Andreas Lanjerud

    Yes there is: using country code letters, as Funka suggests here:

    The look of the icons kinda suck, but some of the ideas are pretty good.

  3. At (a three language organisation, and therefore a three language website - at least, we try ;-) ! ) we use a button with the name of the language in that language. I.e. Englisg, Francais, Espanol. Works quite nice!

  4. It seems to me that serving content based on the user’s browser language header and/or geographical location first, but with alternate language links written in those languages (i.e. option #2) would be a pretty good system.

    It also strikes me as an interesting idea to try separating content from structure; load content into suitable DIVs dynamically (if Javascript is available), and allow content in new languages to be swapped in without a page refresh.

  5. I’d find the alternative to serve the content based on location etc a bit annoying. I’d rather see a default language (perhaps eng), and option #2.

  6. April 18, 2006 by Roger Johansson (Author comment)

    Andreas: Language codes may work for geeks, but I doubt that the ordinary web user knows what the code for their language is. And those icons aren’t just not pretty, they are also really tiny.

    Paul D: I find automatically detecting a user’s location or preferred language very annoying when I visit a site that does that. I prefer being given a choice.

  7. April 18, 2006 by Shippy

    Surely there is no difference in detecting a users preferred language and giving them a choice to change if they want and displaying the webmasters preferred language and giving the user a choice to change it.

    Both methods involve a default language and a option to change if they want.

  8. Not so long ago we had an extensive discussion on this subject as well. I agreed and still do that flags represent countries, not languages, thus should not be used as a way to change languages. In that particular situation we were also targetting changes in content depending on the location, so my point of view was to use flags communicating the geographical location and using text to change languages.

    However, in a much smaller project I do use flags. While they may not make sense when you take a closer look at it, the fact remains that it still works very well. Text next to the flag most definitely improves it, but it’s not as bad as some people make it out to be (in my experience).

    Anyway, to answer your question, depending on the size and variety of the audience of the website, I’d either shoot for option 1 or 3. The flag seems to have become an easy way for a visitor to recognize language/location settings, even though it’s somewhat incorrect. It must be some kind of convenient result of all those crappy splashpages we’ve seen in the early days of the internet showing happily animated flags littering your screen. :-)

  9. “I find automatically detecting a user’s location or preferred language very annoying when I visit a site that does that. I prefer being given a choice.”

    I haven’t done a worldwide poll, but suspect you’re in the minority. Having to pick one’s language = an extra link to search for = poor usability. Why not do one’s best to present the user with the information that user can best understand? And the whole point of setting one’s browser language is to make this possible. Just my point of view.

  10. Another thought: if you’re going to use flags, take your targeted audience into account and use cultural consideration. A North America-wide company might be fine using either a Quebec flag (more relevant) or French flag (generic and recognizable) for French, but it would be a poor idea for a Canada-only website to do so, considering the numerous areas outside Quebec where French is used.

    A Spanish flag might represent Spanish for a Europe-oriented site, but be inappropriate for a South American organization (just my guess). Maybe a tiny map of the continent with Spanish countries shaded in? (I’m mostly joking there.)

  11. When you speak of auto-detecting a user’s location you’re talking about the language specified in their browser? Because I’m portuguese and my browser (as well as my OS) is in english. This means I could understand both languages, but in some environments this is not true (eg, corporate businesses, university, etc).

    You can use a default language and then give the user some options.

    Another issue is in which language should these options be given? If I don’t understand any english and I want to switch to portuguese the option “switch language to portuguese” (if in text) should be in the “target” language, not the current one.

    As for the flags for icons, maybe.. i think it all depends. Which flag are you going to use for English? UK? USA? and what about Portuguese, Portugal or Brazil’s flag? A blended version? (i’ve seen those around.. half one, half the other) What if there’s more than 2 countries.

    IMO, a text aid is imperative. Even if just in the form of a title attribute.

  12. I too find it very annoying when the the language is chosen for me. I prefer to read in english. Especially when the content is only half translated ( et al).

    But .. I am convinced that sites that present content in multiple languages do so for a reason — A majority of the visitors want to read content in their native language. Hence I think the best approach is to set the language automatically based on browser preferences and then let the users change the language to a non-native one if that is what they fancy. It all boils down to wether the majority of the users want to read content in their native language or not though.

  13. Where I work, I had to create a site for a client that had US-specific and Canada-specific information. The Canada side had to be in French and English. The clients themselves were based in Canada and thought the problem should be soved by having two buttons for login - an American flag for the US and a Canadian flag for Canada. The American flag would take them to an English site, whereas the Canadian flag would take them to the French site.

    Yes, they were based in Canada and had no idea that a good deal of Canadians speak English.

    Luckily I’m a hockey fan, so I knew this and had to correct them at EVERY meeting (“We need this added to the English site.” “The American English site, or the Canadian English site?”). I wound up giving them three buttons: one American flag and two Canadian flags, each with language-specific text superimposed to explain how they were logging in. Everyone’s happy. About the buttons, anyway.

  14. As a swiss webdesigner, working in a country with four languages (french, italian, roman, german) I agree completely with your recommendation to use the name of the language as text links. In our country you would easely offend a swiss french speaking user by offer him an icon with a flag from france. So it is with Italian and german and all the rest. I disagree with Jacob Nielsen (If you don’t mind) - a flag is the wrong symbol for a language.

    Rolf Luginbuehl

  15. April 18, 2006 by Ned Baldessin

    I think we all agree that a flag is a bad idea, and that using the HTTP Accept language header is a good default behaviour when the user hasn’t yet explicitly set his preference.

    What I’m still not sure about : is it better to have URLs like /en/page, /fr/page, /de/page, etc, or should we consider that translations are just a different representation of a same ressource, and use /page or /page?locale=en-US to localize it (the locale is then saved as a session var).

    I tend to favor the later.

  16. April 18, 2006 by Zephyr

    Roger, what is “content negotiation”?

    I would favor a single well-understood icon that represents the concept of language (in general) to draw attention to the option of changing language, instead of symbols for individual languages/countries. Unfortunately, I can’t think of what that symbol should be. I kind of like the idea of the globe (let it spin slowly so that no one feels annoyed that their country is not the center of the world… and you could try the UN flag, except that American users would be boycotting it ;-)

  17. For me, I find the usage of flags to represent language to be a European practice. In North America, flags bring you to a localized version, usually for the sake of currency. Definitely not language.

    Present the language choices as text. Whether to default to a specific language first is of little consequence. There’s always a fraction of your audience that will have to make a decision at some point.

    Another interesting flip on the localization coin that Ned comes close to touching on is URLs. For example, should it be /en/help, /fr/help? In reality, it should probably be something like /en/help, /fr/aide.

  18. April 18, 2006 by mark

    The important thing is that people can understand what you mean. So a flag is a valid indicator of language in most cases. However it is more correct to use the text of the language.

    I always have a laugh when they use an american flag to represent english! Stupid americans!

  19. I’m with Jonathan on this one. When I see a British flag, I assume it’s British-specific content, not just english. This is especially true since there are many global sites with links to a British site, and an American site, which one is a Canadian like myself supposed to go to?

    It’s also a bit of a knock on countries that aren’t represented. In a way, I almost resent having to click on a British or American flag every time I want english. I’m not British or American.

    It also raises the issue of regional sites for multi-lingual countries. This is an extreme example, but if you needed a Swiss-specific e-commerce site, are you going to click on a Swiss flag to get to the Swiss site from the global site, then a German, or a French, or British, or Italian one to get the right language?

    Language is language, region is region, I don’t think they should be mixed.

    I like:

    English | Francais | Espagnol

    I don’t see the need to make it more complicated than that.

  20. Haha oops…I missed the Swiss comment above.

    (Fades into the shadows…)

  21. April 18, 2006 by mark

    regarding the union jack to indicate english, it’s worth remembering that there is no language called “british”, there are several languages spoken in the UK - most noteable are english and welsh. the english flag is st george’s cross and would be a better symbol to represent the english language, if a symbol were to be used.

  22. I prefer the third option: a flag, and the name of the language in the language itself.
    If I have to deal with two (or more) languages widely spoken in the same country - as in Norway, then I’ll rely on text in each language to differentiate them.

  23. Here in Canada, words, written in the language they represent are the de facto “standard”, for a couple of reasons:

    1. Quebecois are more sensitive to language than most, given their position. Using a french flag would simply be a insult to them. (besides, you wouldn’t use the Union Jack for a Canadian English site, either - that would be just as insulting!)

    2. Using the Quebec Fleur de lis is an option, but then you’re comparing a provincial flag to a national flag, which brings up some rather interesting topics regarding Quebec’s status within Canada.

    3. Not all French speaking people in Canada live in Quebec, with a good chunck of New Brunswick and southern Manitoba also francophones.

    So really, the only workable way is to present language selection as “English | en francais”, in line with what you suggest Roger.

    In addition, it’s worth a note that another defacto Canadian standard is the use of a bilingual splash screen to obtain language selection, with simple cookie “remembering” afterwards. Again, the politics here is that no single language should be allowed the “preferential” treatment - as being the default would imply.

    Just my 2 (Canadian) cents worth!

  24. April 18, 2006 by Marc Luzietti

    I’m not sure the name of the language in the page language is necessary. If your primary tongue is English and you don’t know that Svenske is Swedish, you probably aren’t going to understand much in the Swedish section anyway.

    As for using the St. George’s Cross for English, most people don’t know that’s the national flag of England.

  25. April 18, 2006 by Roger Johansson (Author comment)


    Roger, what is “content negotiation”?

    In this context I am referring to automatically serving content in the language the user’s web browser specifies as the preferred one.

  26. There are many ways to implement content negociation based on the browser language. What I find utterly anoying is when the same URL is used for multiple languages. For one thing, this breaks the expectation of being able to link to the right content, and many people do not even notice and link to the URL without thinking about that. The same text in two languages isn’t the same content and deserves a separate URL.

    I’m a Canadian and Quebecker; the content of my website is bilingual and I use content negociation, but only as a way to redirect people who gets to the root of the site. And then on every page having a counterpart in the other language there is a link “English” or “Français” depending if the current page is in French or English. Using flags would be a little absurd from my perspective (I wouldn’t say insulting as suggested by Dave P, I’d say clueless).

  27. Ned Baldessin wrote : What I’m still not sure about : is it better to have URLs like /en/page, /fr/page, /de/page, etc, or should we consider that translations are just a different representation of a same ressource, and use /page or /page?locale=en-US to localize it (the locale is then saved as a session var).

    I tend to agree, but when thinking of google I don’t… The value of an indexed page greatly outweights a logical URI in my opinion.

  28. Of course it should be - then you can have a fair look at our “system”… ;-) (comment # 3)

  29. I’ve had plenty of multilanguage sites over 10 years, one even having no less that 8 languages.(for a translation agency… they could afford translating the site.)

    This is what I find works best :

    1. Language switch : use language in full in the language; (e.g. most people think ‘Dutch’ is actually german [=Duits in Dutch :)], use Nederlands instead) Display all languages with the current one highlighted.. a typical Pipe | separator is usually the most elegant choice

    2. if having not enough space, use the iso codes like nl, en, de, es, ru… (even my windows language switch on my bottom right corner uses them)

    3. use a persistent cookie with the language switch preference… if no cookie, use the browser locale and switch to english if the browser sends you one you don’t have.

    4. Make sure you have enough content in all languages you provide… make sure your customer (internal or external) understands that having a multilanguage site does not mean 100% in French, 60% in Dutch and 25% in English… Nothing is more frustrating finding out that the site in one language contains more than your preferred language. Also make sure that the add agency provides you the content and images in 3 languages on the deadline… having to slot in the english one 1 week afterwards is not very nice way to handle your visitors… (bombarding them with the Dutch or French version)..

    5. Flag : NO WAY… flags = “countries” not languages… no Flemish person appreciates having to click on a dutch flag to get the content in it’s native language… how about where does the flag of the US take you? English? But what about its Spanish speaking population, they’re no less Americans? What about Irish people having to click on the Union Jack… hmmm .. and who knows the difference between Dutch, Russian and French flags or Belgian, Romanian and Chad and … and if you on a Belgian site would use the Flemish lion, the Waloon rooster… what would you use for English? You see this flag doesn’t fly…

    Being born in Belgium makes multilanguage a second nature: keep it simple…

  30. April 19, 2006 by Martin

    Although flags are a no-no (un non-non, ein nein-nein, etc.), because they’re just too political (for some more than others of course, and people sensitive to such things tend to shout louder than the rest), it’s a real shame that some kind of symbol representing languages or ‘language’ in general isn’t widely recognised. I’d love to hear any suggestions better than those put forward so far (personally I think a globe icon is just too generic, especially in the context of the internet).

    My suggestion would be to use the name of each language as written in the target language itself. But, instead of also including a translation of each language name in the language of the current page, I would precede the list of language-name links with the word ‘Language’, and have that word in the language of the current page. This way, the issue of what the language links are/are for should be clear enough for speakers of all the languages in question.

  31. Mighty fine write-up, as usual.

    I’m personally down with the name of the language, in the language. I think, when reading, attention is naturally drawn to words in one’s preferred language, and will naturally wander from words in another language.

    I got nothing to back this up though.

    Peter-Paul Koch went this way, shunning flags - see, near the bottom of the page.

  32. I’ve used language codes before and given both the native name and english name of the langauge in the title attribute. Like almost everyone else, I agree that flags shouldn’t be used for language.

    Content negotiation is a good thing and you should serve the user’s preferred language (if available) based on the Accept-Language header. However, it is important to always give the user a choice to change the language and you should try to make that choice persistent either by using cookies or with the URI.

  33. We have used flags for clients who insist, but we always advise against their use, as I agree with you, Roger, that they represent countries, not languages. Not only could it be technically considered discriminatory, but I can imagine quite irritating for some as well.

    I recommend using a link in the intended language. We assume that if someone wants to read content in that particular language, that they can read that single word.

    Years ago, when I did a lot packaging design, an accepted convention was to use flags or two or three-letter country codes in ovals. The difference is that it was known in which countries the product would be distributed. Not so with the Internet.

    What I’m wondering is if it is at all necessary to have a visual element representing a language. If we need to develop a symbol, why not symbolize language communication in some way?

  34. April 19, 2006 by Tim W.

    The site of the European Union uses a dropdown select widget with al the languages in their native ortography.

  35. I feel as most others that the only sensible thing to do is to use strings with the name of the language. This gives the user a much better understanding of what it is he or she is actually clicking on. Flags are (as others have iterated a billion times) ambigous.

    Regarding the controversy of the Stars and Stripes vs. the Union Jack, I saw a nice solution on a site the other day. It took both flags and combined them via a diagonal line, making the top left half the Stars and Stripes and the bottom right half the Union Jack. I am sure that some Austrailians and others would complain, but I felt it was a novel approach (I am new at this however) which appealed to me if I had to use flags for some reasons. It clearly said “This is a language choice, not a region or currency choice” since the UK and US differs in both of these.

  36. I wonder about the efficiency of displaying the target language name in that language.

    If in the third paragraph of an English page I have a link pointing to a French page, how does that help my reader if I write: (en français) ?

    I you’re already reading the text in English, isn’t it safe to assume you speak English and know what “in French” means? Are you just scanning pages at random to see if you can pick up some French?

    And what about the fact that the Englsih reader may not understand that word/sign in a foreign language? How is he gonna say to his friend : “Hey I found a website in Korean for you”? Do all English readers know the difference between Korean and Chinese signs?

    Furthermore if you write the name of a language in that language you are indeed switching language in the middle of your text and therefore that should be properly marked up with the lang or xml:lang attribute. But that can’t be done with the CSS attribute trick, so these should always be assumed to be in the same language as the surrounding text.

  37. I live in the Basque Country (North of Spain). We usually develop websites in both oficial languages: Basque and Spanish.

    We’ve used several methods for languaje navigation, and the best option seems to be to use the original name of the language.

    I used language codes in my website’s first version and my mother had problems to find out how to change the language when I asked her to do so. When I changed to the complete name she had no problems.

    Flags are a very bad idea. I’ll give you the example of my own country: in the Basque Country, with the problems between basque nationalists and spanish nationalists, you are always going to offend someone if you use flags.

    By the way, great post Roger!

  38. I’ve gone for #3 on my site.

    Whatever their considerable disadvantages, flags used in this way are like Churchill’s description of democracy: “the worst form of government except all the others that have been tried”. Flags have been developed over hundreds of years as eye-catching and easily identifiable symbols, so they make naturally good icons. Almost all languages originated in and/or are associated with particular countries (if people are confused or offended by that fact, they need to go out more). In the absence of a readily identifiable symbol for the language, I’ll make do with one for the country. It’s better than some “neutral” alternative that nobody would recognise.

    There’s also an element of de facto standards here. Hey, maybe it would be better not to put the site logo in the top left and make it link to the home page, but that’s what people expect now. Flags-for-languages are the same thing: If I see a row of flags on a page, I know what it means. If I’m on a non-english page, an English/UK/US flag will catch my eye - probably cos I’m half looking for it already.

  39. April 19, 2006 by Erik Gustavsson

    I think flags are useful symbols for showing internationalised content, as long as your site is available in a few languages only, and not aimed at different markets. IE if you´re aimed at the spanish market AND the mexican market you better have two different versions, but then again, if you have a mexican and a spanish site, then you could as well have the two different flags? I thing most visitors will, if they are interested enough in the content, choose the flag/language nearest to them. If I get to choose between a german flag, french flag and the union jack I will undoubtedly choose the union jack, even though I am swedish, since my english is so much better than the other two options. If you choose to have union jack as a representative of english however, I suggest using “british english”, not “american english”. I guess the same goes for spanish and other languages. If you´re aiming for french/english speakers in Canada I guess you will have to find another option, and using plain text can´t be wrong i guess.

    I agree with Cris Hunt above. Flags are not “perfect” but I believe they work most of the time.

    Another important issue is the e-mail symbol of a (often) yellow envelope.. hey, who sends paper envelopes over the internet anyway? And why are phone-icons often depicting old style phones when most phones today look like..well..different.. :D


  40. Most time i use IP-filtering to quickly determine the users location. So i asume U.S. ip to read English. But, then i also make text-links with alternate languages on the page where they land after ip-filtering.

    i never use flags.

    seems for me the best sollution.

  41. has it in text which works nice.

  42. April 20, 2006 by jbot

    Instead of having the user click on a link to go to language-specific version of the site, why not use content negotiation, whereby the browser picks up the language the users’ browsers are set to and displays the language specific pages automatically. If you’re developing using a serverside language and SQL DB, then this becomes even easier. If users feel compelled to change language, then they can do so through the browser itself. This then eschews the cultural and political sensitivities of what icon or text to use for language selection.

  43. jbot: certainly here in Canada, I imagine most have their systems set to English, even if they are French speakers and wouldn’t even know where to go to set the language to another version.

    Also, (again, speaking of Canada here) French users often prefer to use the English version of the site as they feel more confident that it’ll have all and the most up to date content. (How many times have companies created a primary version of the site leaving alternate languages to languish?) Users may also wish to switch language due to poor translation.

    Forcing a user to have to configure their system each time just to view a site in a particular language is cumbersome to say the least.

  44. Jonathan Snook has a good point here. Poor translations are too much common on the web and users like me often want to compare documents just to make sure certain terms are correctly translated, or as a quick way to learn the translation of a technical word (when you can read two languages it is often much more convenient than searching in dictionaries which aren’t always up-to-date anyway).

    About Canadian French, what Jonathan says may be true where he lives, but I live in Quebec where many people are uncomfortable reading English and won’t even bother to try. Many others, like me, will want to see the content in English in addition to the content in French, just to make sure.

    Because of all this, translations should always be easily available without having to reconfigure the browser. Content negotiation alone (as jbot suggested) won’t cut it, but it may be a good default to send the user to when he first get to the site.

  45. I think while writing my last comment I mistaken “French users often prefer” for “French users usually prefer” in Jonathan’s previous comment. Since he said often, he is quite right: it happens often enough. My error for criticizing this.

  46. April 20, 2006 by jbot

    Content negotiation may be a good default to send the user to when he first get to the site.

    That’s basically what I meant. Obviously, it’s also good to be able swap languages whenever it’s wanted by the user, and while it can be done through the browser itself, many users won’t have the nouse to do this for themselves, and so it’s good to provide a built-in mechanmism to achieve that. Besides, redundancy doesn’t do any harm in user interfaces.

  47. April 21, 2006 by Valter

    Beware of language selection dropdowns! It might seem a good idea to put all the available languages in a SELECT titled “Choose language” or whatever — until you find a site in Urdu and can’t find the English version because you don’t know what “Choose language” is in Urdu… I’ve seen that happen (not in Urdu though)… and what’s worse: the languages were listed NOT with their native language names but translated to the current language…

    As an experiment, try configuring your cellphone (or your collegue’s) to Arabic and back (or just leave it that way if it’s your collegue’s).

  48. April 21, 2006 by Michaël Guitton

    Roger Johansson wrote: This is assuming the site does not use content negotiation to automatically display information in the visitor’s preferred language (which is a bad idea anyway).

    I don’t think using content negotiation is a bad thing per se, provided you still include a list of links to localized pages. BTW, I’m using graphics to represent foreign text in such links since the appropriate font might not be available.

    Further reference: Using <select> to Link to Localized Content

  49. A site I volunteer on, Baha’i Prayers, has content in nearly fifty languages. I put a small picture of a world map next to the word Languages (in English) in the global navigation, and then another very long page lists the language-specific content with language names in both English and as written by a native speaker. This seems to work pretty well for visitors.

  50. I think there is no perfect sollution (as always) but, one can come close to “asume” what they “might” want. The ip-filtering i use, is merely to take down bariers and firstly to present the site in the language of the persons country IP. By adding textlinks or a dropdown menu with alternate languages makes it for me a good sollution. Sure, there are people in a country that do not want to read the page in the language which i filter based on country ip. But those numbers of people are so marginal against the “barrier breakdown” to auto select language on IP.

    I do not recommend flags in any case, if you are into usability you also understand that images are not read by certain readers, while textlinks are.

    Maybe it depens on how many languages you have. If you have: french, english, spanish, german, then flags can be an option (coss they maybe used to flags) but for a numerous list of languages, the text-links or better dropdown menu seems perfect.

  51. I’ve always chuckled at sites that contain translation links IN ENGLISH. It is very possible that they cannot read that to know to push the link. Flags are the way to go and a one word link (in that language) next to it is even better IMO.

    The funny thing is, a long article on translation and I see no translation plugin on this page… don’t worry, I haven’t gotten around to deciphering that install either lol.

  52. I agree that language should be text links. Actually, I posted about this in 2004, but specifically about English content. I also agree with providing language directories (i.e; this isn’t an issue given the use of rewriting.

  53. In my experience, nothing catches the users eye like the flag of their country.

    Letting that flag represent the most used language in it’s country doesn’t seem like a big problem to me. After all, isn’t that what the user would expect it to do?

  54. content negotiation to automatically display information in the visitor’s preferred language (which is a bad idea anyway).

    why it’s bad? an alternative in case the negotiated languages misses the user real preferences is obligatory, but language negotiation is helpful anyway. f.ex i provide services to local clients as well as international, and if i find any sign of polish in user’s data i view the polish version, if not - english. i find it logically correct as both versions have links to the other version anyway.

    the flag vs text problem, i find the text solution as the best one, as other nations using the language don’t feel ignored. going further with that, how would you order such specific languages and language versions on list?

    version 1
    brasil (portugues)
    usa (english)

    version 2
    english (usa)
    portugues (brasil)
    spanish castelano

  55. Gentleman, I’m afraid you are trying to find Holy Grail when such solution IMHO doesn’t exist.

    From time to time I’m looking for info about military aviation. I have to search and read content in several different languages - Polish, English, Czech, Slovak, German, French, Spanish, Croatian, Russian etc. Of course I’m not so multilingual, certainly not - I’m only trying to find the best info available.

    1. Flags are bad? Pure flags yes, but flags with some kind of good description are wise choice indeed. People interested in culture and language of another language certainly learned about flag and are able to recognize it. Combine such flag with name of the language and most people will be satisfied.

    2. Detecting IP or browsers’ settings are good? Well, not always. Imagine that you are in small European country Boghunda [such country doesn’t exist] and you want to look at your favourite bi-lingual site about Boghunda’s history. You’ve found Internet cafe, started your favourite browser and… yes, Houston will be quite busy. You have no luck - webmaster uses IP and browser settings detector. Your IP shows that you are from Boghunda and browser chooses Boghundan content again and again. You are trying to change some browser’s settings but all options are unavailable. Nightmare? Not, it’s reality…

    3. ISO country codes? Imagine English site, some kind of demonstration of differences between several English language derivatives. Do you really want to show your visitor ISO code mess? en-AU | en-CA | en-SG | en-GB | en-IE | en-JM | en-BZ | en-MY | en-IN | en-PH | en-ZA | en-TT | en-US | en-ZW | en-NZ Honestly, who recognized codes other than en-AU, en-GB, en-US or en-NZ?

    4. OK, let’s look at quite long text links / long images for the same site: Australia | Belize | Canada | India | Ireland | Jamaica | Malaysia | New Zealand | Philippines | Singapore | South Africa | Trinidad | United Kingdom | United States | Zimbabwe A little bit long and not quite clear, isn’t it?

    What about several flags with proper description? Images are shorter, have the same dimensions and can be read in text-way by screenreaders etc.

    From personal point of view I’m always glad to see flags. Flags are almost always clearly visible and are eye catching - it’s hard to miss them on almost any site which uses flags. I agree that flags have some disadvantages, but IMHO most of them are overestimated.

    I think we should be flexible and we should choose wisely. If your users feel better with ISO codes, use it. If your users likes flags, give them some flags. If your users likes drop-down text menu, just use it. None of these options are ideal…

  56. Interesting to so many different views on the subject. Maybe that’s why there aren’t any standards.

  57. April 24, 2006 by Pingu

    The language name must be written in the language itself. If it’s ‘Español’, for example, a title may contain something as ‘See in Spanish’, because that pertains to the current page. The language name, somewhat pertains to the translated page. If you can’t understand the language, why you would want to switch?

  58. If you can’t understand the language, why you would want to switch?

    Maybe I would like to check word spelling in other language? Or maybe I would like to see how another language looks like? There is a lot of reasons to switch :)

  59. Interesting discussion. One comment I will make on content negotiation - it has some drawbacks.

    1) when used to find location it isn’t always accurate. I have yet to have a site that does this accurately identify my location. Due to my ISP’s routing and the various parent companies involved I have been “located” as much as 2500 km (about 1500 miles) halfway across the continent from where I actually am.

    2) using languages is better but can also be erroneous. For example eBay refused to show me an entire subset of items simply becasue one of my language preferences in my browser was set to [fr] (apparently some products are banned in France). Though I usually browse in English I can also handle French and usually get the meaning in several other langauges I know snippets of (and so have created a langauge fallback heirarchy for my browser).

    I haven’t seen anything yet quite as efficient as simply making the default page in the principle language in use by your main audience, and text links in the specific language for navigating to another version.

  60. April 28, 2006 by Bart

    I prefer to see some other symbol or text instead of a country flag. Just the other day, I was visiting a French site and wanted to see it in English.

    I am located in the US, so I was looking for a US flag. There was no US flag — it took a few moments before I realized that I had to click the flag of Great Britain instead.

  61. The name of the language in the language. So Norsk for Norwegian, Svenska for Swedish, Francais for French. It’s been long established that words are read faster and easier than icons, plus accessibility isn’t a problem.

  62. Keep in mind how content negotiation interacts with browser and ISP-level (proxy) caches. If is both English and Japanese content, depending on the Language header, and you don’t set the caching headers properly, you can end up with a proxy caching the Japanese version and then showing it to an English-browser user. What’s particularly bad about this bug is that it’s so hard to catch, because most ISP proxies primarily serve a single language.

  63. Here is my solution to multilanguage site, content+gui: CMS_BE

    ( hope you like it :-)

  64. May 10, 2006 by TomS

    Another problem with flags would be deciding what alt text to give the image.

    If you used the Union Jack to indicate the English language version of the site, for instance, would the appropriate alt attribute be “Union Jack”, “British flag”, or “English-language version”?

    I think the problem of some languages being spoken in more than one country, and some countries having more than one language should rule out the use of flags anyway.

  65. May 29, 2006 by Simon

    Hey guys, symbols change ( On today’s websites, little flags in conspicuous positions mean languages. Speed is of the essence, and a LOUD, obvious visual clue saves precious time.

  66. NEVER automatically change your website’s content to a particular language because you think you know your visitor.

    I’m currently using a Chinese-version Windows and my IP is in a Chinese-speaking country, although my preferred language is English. I use the Chinese version out of convenience (that’s what’s sold here) and I do have a need for certain dual language apps. Most annoying is when I visit large corporate websites, in this case, Microsoft, to download a new program, in this case, Windows Media Player. All the while, I’m browsing through the English version, however when it comes to the download page, it suddenly switches to Chinese. Well, I tried to find the English download but couldn’t, even from a different computer. So I downloaded the Chinese version then wrote MS a letter saying how ridiculous that is. Since the CHinese translations in the Media Player require a learning curve for me, it’s taken me a long time to learn all the features of the program, and I’d rather not waste my time having to learn something like this. There are probably still some features I’m unaware of.

    Nowadays, there are so many expats living in other countries and in a lot of cases using local computers in offices. I doesn’t make sense to redirect these people to languages they are unfamiliar with. My basic ability to read Chinese helps, but I can’t say the same for others.

  67. I created a set of CSS that looks for an hreflang attribute in your link HTML. If you include it, the CSS will add the language of the site, i.e. (En Espanol) and it will add an image of the flag. The CSS accounts for the different countries if you specify them in the link. For example hreflang=”pt-br” returns the Brazilian flag and (In Portuguese). It wouldn’t take much to put these in their native languages as well.

    Attribute selector to provide language information

    It’s not a perfect answer, but takes semantic markup and provides a visual reference in most browsers.

  68. We design now some sites in 5 different languages and we decide not to use flags because can irritate some users. For example we have both germans and austrians as visitors on our sites, if we chose to use the german flag as a link to our section in german the austrian may feel not so well(in Switzerland some people speak also german). So we decide to use 2 letters codes of ISO 639-1 like de, en, hu and so on. Anyway i’m wondering why some editors choose to use flags when they print dictionary. Great article, onestly i argue awhile with my colegues on wich metode is more accessible to the users, text or text beside flags…and we undestood, me first that is better using simple text.

  69. anchor, link, em(phasis), strong, etc. It’s all English. I think the best way to go is English first no matter what the browser language header says, then let the user choose and save the choice in a cookie. You can’t go wrong with the universal language, the one that CSS, HTML and all the rest of the web technology is based on anyway…especially for a site related to technology.

  70. In a recent project of mine:

    …I used both:

    1) Two-letter code for the language; 2) Text tooltip with the language selected/ option to select the other available language; 3) Small flags.

    I tried to make it as usable/accessible/and pretty as possible:)

    For my part, I like being given a choice. If I visit first time a website, I’d like to be able to pick up the language I like myself, and not some machine to decide this for me, based on my OS selected language or my geolocation (from IP address reading) or my browser settings. Because, when machine decides, there are always errors:)

  71. Text in the target language is functional but boring and as a drop down list even more so. Especially when there are several languages a shorter way to show the choices would be better.

    What would usability be if a row of small stylish icons (images) was used, each showing a special character which immediately identifies the language to the person who knows it. For example: e for english, è for french, ñ for spanish, ü for german, and with mouse over the full name would appear in the target language and in english. (This could even become a little learning experience.)

    This would require some research to identify the character which best identifies a language and a good graphic design to develop a complete set of special, stylish icons for all known languages….so that it can become a standard.

    (For those of you who cannot see the special character on the screen: è is ALT138, ñ is ALT164, ü is ALT129.)

  72. “Are there any better options?” Yes is very good ;)

  73. Hi! I’m re-developing a current wordpress plugin that uses flags — a poor choice in my opinion as well. Instead, I’m using the word “peace” translated into these languages, which allows the widget to take up less space.

    Plus it saves me the trouble of deciding whether to put Español or Español Castellano. :o)

  74. One problem with using flags is that they mess up the colour scheme.

    It is difficult to see anything wrong with listing the language in that language. It is difficult to think of a situation in which it would be an advantage to put the languages in English: perhaps somebody who didn’t know the language of the country he or she lived in (very common here in the Czech Republic) might not know what choice to make in a situation in which he or she needed to present the site to another person…however this is pretty unlikely.

    One comment I didn’t understand was your aversion to IP detection. Surely this is the most painless way to go? We were planning to use this, coupled with links to English, etc. There are some countries where it might upset people, such as Belgium, but this is something they are probably used to. What other problems are there with this method?

Comments are disabled for this post (read why), but if you have spotted an error or have additional info that you think should be in this post, feel free to contact me.