Jürg blogs about language selection on web pages over at the namics blog (in german). He wrote up his guidelines, most of which are quite sensible, but also read the comments for a good discussion.
As a contribution to the discussion, I'd like to explain how we did this at search.ch: In general, very similarly to his guidelines, i.e. the language selection is in the upper right corner and the labels are text and in the destination language (a few pages still have the selection in the history/navigation bar at the left, but the upper right corner is really where it should be).
But the interesting details are within the initial detection and the URIs. An URI could end in help.html, but also in help.en.html; exactly how Apache content negotiation suggests, i.e. the first one would trigger automatic language detection, the second one is fixed on english. The important difference is in how the links in these pages look. We took great care (and credit for this goes to Urban Müller) to keep the links on those documents in the same style. That is, the help.html document would come in the user's language (e.g. german) but wouldn't contain language links (e.g. .de.html). Thus, the url would also reflect the information the user put into the system: The language was only set if it was actually overrided by the user. Since the language is usually guessed right, this keeps nice and tidy URIs (directory indices go from /index.de.html to /!) for most users, and even more importantly doesn't leave to much information in the URI when it is used in a link or an email! Unless the user explicitly set the language, automatic language detection will still work when the user comes from an external link.
Another detail was, that we override an automatic detection of english with german. This might be a special situation that suits only for search.ch, but let's look at the reasons. Tests (comparing the language of queries with the detected language) showed, that english-instead-of-german was the most common mistake in detecting. Quite obvious actually, since still many people prefer to install their computers in english (I do) and then don't change the browser settings. And german is the most common language in Switzerland. And this wrong detection is quite a loss since many parts of the site (e.g. news) are not available in english. On the other hand, by the nature of the site search.ch an english speaking user who doesn't understand german would still get quite far in the wrong language. Thus, the false positives for english were worse than the false negatives are now after the overriding.
Of course, both differences are small details in the big picture, but for a fraction of the users getting those right matters a lot. As does hiding the details from all the others.
Posted by seefeld at December 3, 2005 15:54