Z. Wagner - information on content negotiation

Content negotiation is a standard method of communication between the server and WWW browser. There are various things which can be negotiated, one of them is language. However, a lot of web page developers ignore standards and force users to learn nonstandard methods which work only on one particular server.

The detailed description of content negotiation can be found elsewhere, see the links at the end of this page. For us it is only important to understand that the server knows the language variants of all pages. It also defines its own preferences. Thus the browser which does not implement content negotiation will receive tha variant selected by the server. Usually each browser has its own language preferences defined. It sends the preferences to the server and the server then returns the variant which matches best user's request. There is always one default fallback document for the case that no match exists.

You may ask why we just do not make two sets of pages in both languages. The reason is that we would have to maintain two sets of links. The user will usualy first enter an incorrect language version. Moreover, some pages may not exist in all languages. For instance, Network Computing via World Wide Web is available in English only. If the reader of the Czech pages jumps to this page and the follows futher links, he will receive English pages and will have to select the Czech tree manually again. Content negotiation ensures the he or she will be presented the Czech page if it is available.

You may object that the same functionality can be achieved by cookies. The problem is that some users consider cookies as violation of privacy and disables them. Sooner or later the cookie expires ar the user deletes all stored cookies. Language selection then ceases to work and the user must repeat his/her choice. Moreover, unlike content negotiated documents, the dynamic pages cannot be cached and thus cause unnecessary load on networks.

The greatest advantage of Content negotiation is that the preferred languages are set once forever and the same setting works with all well designed web sites. The browser displays the help for language setting in user's mother tongue. The server can only present help in the default language which may not be understood by the user. Thus we have the chicken and egg problem.

Unfortunately, the browsers are often configured incorrectly. Looking into the log file I see that for example a user from Switzerland requires pages in Swiss German only and nothing else. Such users will not get requested page from well configured server.

Remember that most English pages are written by people for whom English is a foreign language. They do not feel differences between American, British and Australian English. The settings, although insufficient for professors Pickering and Higgins from G. B. Shaw's Pygmalion, are too much descriptive for web pages. You can add as many languages to your preferences as you wish. You can thus select whether you prefer American or Australian English if the server contains both versions. However, you should also include generic English in your preferences. The same holds for other languages as German, French etc.

The user should set all languages which he/she understands in the order of his/her preference. Here are instructions for selected browsers:

Edit/Preferences/Navigator/Languages -- use Add to add all required languages, use Move Up and Move Down to change their order.
Edit/Preferences/Navigator/Languages -- use Add to add all required languages, use up and down arrows to change their order.
MS Internet Explorer
Tools/Internet Options.../General -- push the Languages button, then use Add to add all required languages, use up and down arrows to change their order.

Useful links

Friday, 09-Sep-2005 10:19:18 CEST