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:

The flag of the country most closely related to the language.

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.

The flag of the country most closely related to the language plus the name of the language as text in the language itself.

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.

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.