8 Sep 2011 yosch   » (Master)

Please don't use flags on your multilingual website

As the web becomes increasingly multilingual and more domains host content in various languages, an anti-pattern tends to surface: the use of flags to represent sections in different languages.

As more content gets written (or translated) and added to a website, the section and navigation system gets redesigned accordingly. But the underlying assumptions about hosting multilingual content and the best way to present it to a bigger and more varied audience are often not being properly thought through. I imagine that this is not just because monolinguals or ethnocentrists may be in charge but because i18n best practises usually come as a afterthought.

If you design your website with a navigation system forcing users to go to their preferred content by clicking on a flag, you're making a very infortunate statement about the classification and power relationship between languages and in the process you're very likely to alienate people visiting your website or making use of your webapp. Consider how you'd feel if you had to pick the flag of a foreign country to get to the section most relevant to you? For example if you were Belgian and had to pick the French flag to get to the content relevant to you? Cameroonian and had to pick the UK or French flag? Australian and had to pick the US flag? Swiss and had to pick the German, French or Italian flag? Or Taïwanese and had to pick the Chinese flag? See the pattern and how this is a big can of worms that makes people uncomfortable? Unlike what powers-that-be would like you to believe, flags don't map to languages and country borders don't correspond to linguistic communities. A flag represents a country and many many countries use the same language or have more than one official language (and often more lesser-known languages not officially recognized at the country level).

Instead of flags you should be using the name of the language in autonym form and the corresponding two-letter or three-letter code for the language as standardized in ISO 639.

More details in the W3 i18n best practise WG note and in the "flag or no flag language links" article by Motiva web consulting.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!