Websites often present language selection to users with flag icons, but I think this is simply wrong. Flags represent countries.
There are two reasons for a user to change the display language (or at least click on that flag):
- Change the language as he can't read the one displayed: even if the country is correct (say Switzerland), people can speak different languages (French, German and Italian)
- Adapt the content to his country: even if the language is correct, an English speaking visitor may be interested in British content rather than US content.
The logic I would follow is:
- If you have country specific content, let the user select his country first. Flags are perfectly correct in this case.
- If the country has been selected or if the content doesn't depend on the country, let the user select his preferred language. And back to my question here: how to graphically represent a language?
I've seen "English" flags half US/half UK, but how would an Australian identify to that?
My question is not about the techniques used to recognize a user's culture or country of origin using his IP and browser preferences, but how to avoid displaying available languages by their names?
Conclusion considering the answers:
Do not use a flag to represent a language. There is no natural graphical representation for a language. The only acceptable icon for a language is its two letter code as it is used in the Windows standard language toolbar. Even with this icon, it is highly recommended to put the language name in plain text, preferably in its native form.
Update: I just discovered that there is a running competition to Create an icon to signify "language". The results should have been published by Jan 15th 2010, but two months later there is still nothing. It must be a problem with no solution. Update 2013: There is finally a winner for the "switch language" icon. It doesn't solve the graphical representation of a language but I think it's a nice solution for its purpose: