Multilingual Web sites should use language negotiation for pages with equivalent contents to initially serve the content in the reader’s preferred language. In some cases, when the browser is not set to the user’s needs, language negotiation does not give the desired result. Every Web page with equivalent language versions must provide a language menu to allow the reader to switch to her preferred language.
On some Web pages you’ll find country flags as symbols for languages. This article explains why this approach is problematic, and what you should do instead.
Take this bad example of a language menu:
Since the call-to-action is in some particular language (here: in English) or if there is no call-to-action at all some people might not understand what this menu is good for. And there’s an accessabily issue: color-blind people might not be able to distinguish the French and Italian flags, in other cases there might be country flags looking similar to the Dutch flag.
But the main point is: Flags don’t match with languages.
In cases when the language name is the adjective to the country name (i.e. German/Germany, Spanish/Spain, French/France etc.) people might relate the country to the language. Note that the Union Jack is the British flag, not the English flag! (The English flag would be unknown to most people outside the U.K.)
But Spanish (Castilian) is not the only language spoken in Spain, and the same applies to all the other countries in this menu. On the other hand, German is not only spoken in Germany. Should an Austrian reader have to use the German flag to get to her language version? Should a Belgian reader have to use either the French or the Dutch flag?
Even though this menu might work for a European audience, the Web is not European, the Web is world-wide. Should a U.S. reader have to use the British flag? Will all Spanish-speakers in Latin America recognize the Spanish flag as a symbol for their language?
Arabic language is spoken in many countries, and you would not find a country flag representing Arabic. Many languages are spoken in India, and you would not find country flags for these languages.
With flags for languages you’ll get into trouble, sooner or later. Avoid it!
Use the language names in the respective target languages as link labels. This ensures that every reader will be able to unterstand the link to her language version. (Especially for languages in different scripts. Think of a Web page in Chinese script on which the only thing a European visitor would be able to read would be “English”. Or vice versa: a page in Latin script with a link labeled “中文”.)
Because every reader needs be able to recognize the option to switch to her language, all available languages should be displayed immediately. Drop-downs are problematic for language menus.
There is no standard icon to symbolize a language menu, but a globe or a world map are common. The example from above might better look like this:
While you should not use flags for languages you can use flags for countries and country-related things like currencies. Note that there are regions consisting of several countries (Benelux: Belgium, Netherlands, Luxembourg; Latin America) to which you would not find a flag. Also note that the flag of the European Union is questionable as a symbol for the currency Euro: Some countries of the EU don’t use the Euro while some non-EU countries do.