Language negotiation can greatly improve the usability of a site. It is however not necessary, even if the pages exist in different language versions. Neither should one regard it as sufficient. In any case, linking to different language versions is needed.
There are strong reasons to provide links to different language versions even if the server supports language negotiation and arrangements have been made to utilize that. The reasons include the following:
In practice, it is best to start with linking and only then consider whether there is a need and a possibility to use language negotiation, too. This is an example of "augmentative authoring": do first something simple that works for sure, though perhaps primitively, and whenever you add new possibilities, make sure that the old ways still keep working, at least in situations where the new ones don't.
It's a tough question whether language-specific or generic links should be used within the site itself and in references to its pages from outside. Normally generic links are preferable, but such an approach makes things more difficult, if the user wishes to read pages in a language which is not topmost in his preferences. For example, if I'd like to know, perhaps just out of curiosity, what information exists in Italian at the Debian, then I can select its main page in Italian. But when I follow links there, I will get versions as determined by the language preferences in my browser. It is true that I can, after finding myself in a page in Finnish, find there a link to the Italian version, but the problem is then repeated whenever I follow a link. This however should probably be regarded as an exceptional case, which should be handled by the user e.g. by temporarily changing the language preferences in the browser. To summarize, links should normally be generic.
Next section: Selecting link texts.
2001-08-01 Jukka Korpela