Re: Default language

On Mon, 3 Sep 2007, Andreas Prilop wrote:

> When I have no Accept-Language header or when I have only
> languages specified that are not available at jigsaw.w3.org,
> then http://jigsaw.w3.org/css-validator/ defaults to English.
> Fine.

I'd say it's fine in the absense of an Accept-Language header - but not in 
the other case.

The absence of Accept-Language header is, by the HTTP protocol, quite 
different from a header specifying a single language. The former means 
that "the server SHOULD assume that all languages are equally acceptable". 
The latter means that _only_ the specified language is acceptable. This 
might not be useful on practical grounds, since few users know how to set 
their language settings, and browsers aren't very helpful in this, but the 
same might be said about language negotiation in general.

Language negotiation is optional in HTTP, but it seems to me that _if_ it 
is used, it is intended to result in an error condition (normally, 406 Not 
Accepted) when no language is acceptable. Of course the error message 
page can be in English (it has to be in some language, and "the server 
SHOULD include an entity containing an explanation of the error 
situation", i.e. error message page, when sending an error code. But the 
page should not be a normal response page with a 200 (or other 2xx) 
response code.

> However,
> http://jigsaw.w3.org/css-validator/about.html
> http://jigsaw.w3.org/css-validator/documentation.html
> http://jigsaw.w3.org/css-validator/Email.html
> do not default to English. Instead, they offer me some
> cryptic choice of available languages.

I get the English version for them, whether I omit Accept-Language or use 
Accept-Language: fi. Tested on Firefox 2 and Lynx.

> For example, the page
> http://jigsaw.w3.org/css-validator/about.html
> displays as:
>
>
>  * about.html.de Q= 1.0
>  * about.html.en Q= 1.0
>  * about.html.es Q= 1.0
>  * about.html.fr Q= 1.0
>  * about.html.it Q= 1.0
>  * about.html.ja Q= 1.0
>  * about.html.pl-PL Q= 1.0
>  * about.html.zh-cn Q= 1.0

If you get something like that with error code 406 and in response to a 
request with an Accept-Language header containing only language codes 
outside the list that can be inferred, then I'd say that the response is 
correct by the HTTP protocol. It might not be user-friendly, but that's a 
different issue. A good 406 message would say, normally in English (the de 
facto lingua franca of the Internet), that the document is not available 
in any of the languages specified in the reequest as acceptable and would 
list the available options rather more readably than as a list like the 
above. But again, this is a quality issue. The primary question is what 
kind of response is sent, and I don't seem to get the same responses as 
you.

-- 
Jukka "Yucca" Korpela, http://www.cs.tut.fi/~jkorpela/

Received on Tuesday, 4 September 2007 06:10:25 UTC