I read another question where a poster states that flags should not be used for languages since flags represent countries. In my mind I agree but in my eye this solution is the best:

enter image description here

Do you agree that my proposal is the best solution since it's simple and won't go wrong and has no annoying dropdowns and is fairly easy for development to add a language. I chose the languages nearly randomly, I'm not sure exactly which languages to include, maybe Chinese, French, Finnish, Danish, Swedish and Norwegian should also be included.

Please comment or answer what you think. Though flags represent countries I changed my mind after seeing the solution. I might do it differently if I support dialects but this is just for supporting a few largest languages without overdoing it into an overly detailed solution with for instance canadian french and likewise.


4 Answers 4


To expand on:

You're challenging national identities. If someone is from Austria, they need to choose a German flag. While that may not be a big deal to you, to many Austrians it is.

Germany vs. Austria or US vs. GB are relatively harmless examples. I assume in most cases you'd get mild annoyance from the side you didn't choose. But for other countries the issue might be a bit more explosive.

For example Chinese comes in two main written forms: Simplified Chinese which is mainly used in Mainland China, and Traditional Chinese which is mainly used in Taiwan. Choosing a flag for Traditional Chinese sounds rather delicate. I certainly wouldn't use the Taiwanese flag there, since Chinese users are easily angered.

I wouldn't be surprised if there are even more problematic choices in some other countries. For example Windows 95 had a timezone highlighting feature, which was removed to avoid offending governments who disagreed over some border.

Another point is that often don't choose just a language, but also a culture. This usually amounts to a language-country pair. This affects things like date formatting (DD.MM.YYYY vs. MM/DD/YYYY etc.) units (metric vs. imperial), decimal separators,...

Some countries have multiple languages. Some languages are country dependent, for example Portuguese (Portugal) and Portuguese (Brazil) are different.

Condensing all of this down to a simple flags sounds difficult.

I'd use a simple dropdown box, and preselect the language/culture from the HTTP header (do not use geo-ip for language selection) so most users don't need to choose at all. The main problem with this solution is having the user discover the language settings in the first place. So you probably should put some icon next to the dropdown box that signifies "language" (which is a problem of its own).


The problems with this approach are:

  • You're choosing languages to demonstrate this that have an arguably stronger association with specific countries, so the solution seems better than it is.

  • You are also assuming that everyone that speaks Spanish knows what the Spanish flag looks like, which is not necessarily true. Someone from Nicaragua doesn't have a need for that and is very likely not to associate that flag with the Spanish language.

  • You're challenging national identities. If someone is from Austria, they need to choose a German flag. While that may not be a big deal to you, to many Austrians it is.

  • You have no way of dealing with language which don't have an associated country. What do you choose for Arabic, Basque, or Catalan?

The good things with your approach are:

  • is that it fits nicely into an icon.

Overall that's not a good trade off, and you should stick to something more universal, like the language name. Yes, you may need a dropdown, but then it is easily extensible to 100 languages, whereas your flag icon method is not.

Keep to the language names in their respective language. Français and Español, not French and Spanish.

  • 3
    +1 For mentioning that country ≢ language. As an aside, from my experience in L10n/i18n, designers will often get around the Arabic-country problem by using either a crescent and star (like Apple does for its Arabic keyboard layout) or the letter 'ayn (ع) to denote the Arabic language.
    – msanford
    Nov 19, 2011 at 18:37
  • 4
    The problem with the crescent is that it associated more with a religion than a language. Not all Arabic speaking people associate themselves with Islam.
    – JohnGB
    Nov 20, 2011 at 23:33
  • 1
    That's absolutely true and presents a whole host of other problems.
    – msanford
    Dec 5, 2011 at 21:31

The best UX in my opinion is to get the preferred language from the brower, as recommended by W3C

And then leave an option to use a different language.

  • 2
    although this is good, the OP probably wants some idea how to allow choosing it after the fact. Dec 20, 2014 at 0:53

As you say flags represent countries. So, use flags to represent countries not languages.

With this approach:

  1. You should have catalan option inside spanish, french and italian country sites. Catalonia is not Spain, but I'm aganist using Catalonia flag for catalan if is not regional specific content (Catalonia vs catalan language). In China, you have traditional and simplified options too.

  2. Portugal and Brasil shoud have diferent sites using the same language (diferent flags). Argentina, Chile, Venezuela, etc are not Spain.

If you don't have country specific content, you may prefer listing each language name in their original language.

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.