Re: #428 Accept-Language ordering for identical qvalues

"Adrien W. de Croy" <> Sat, 19 January 2013 07:13 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id AB61C21F85A0 for <>; Fri, 18 Jan 2013 23:13:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.599
X-Spam-Status: No, score=-9.599 tagged_above=-999 required=5 tests=[AWL=1.000, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id bWJVuZSeQNeF for <>; Fri, 18 Jan 2013 23:13:40 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id C92EB21F858A for <>; Fri, 18 Jan 2013 23:13:40 -0800 (PST)
Received: from lists by with local (Exim 4.72) (envelope-from <>) id 1TwSc2-0007fd-7z for; Sat, 19 Jan 2013 07:13:10 +0000
Resent-Date: Sat, 19 Jan 2013 07:13:10 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1TwSby-0007ex-0F for; Sat, 19 Jan 2013 07:13:06 +0000
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1TwSbv-0003II-QY for; Sat, 19 Jan 2013 07:13:05 +0000
Received: From [] (unverified []) by SMTP Server [] (WinGate SMTP Receiver v7.5.0 (Build 3481)) with SMTP id <>; Sat, 19 Jan 2013 20:14:13 +1300
From: "Adrien W. de Croy" <>
To: "Adrien W. de Croy" <>, "Amos Jeffries" <>, "Nicholas Shanks" <>
Cc: "Roy T. Fielding" <>, "Julian Reschke" <>, "" <>
Date: Sat, 19 Jan 2013 07:12:14 +0000
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; format=flowed; charset=utf-8
In-Reply-To: <em4c879d50-e2c1-4a01-be35-cb4740f2f4cc@bombed>
Message-Id: <emd7ad242e-2bcb-4e06-beb5-c9582247faae@bombed>
Mime-Version: 1.0
Reply-To: "Adrien W. de Croy" <>
User-Agent: eM_Client/5.0.17263.0
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-3.3
X-W3C-Hub-Spam-Report: AWL=-3.299, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: 1TwSbv-0003II-QY fa9f5a0b96c4ac9c5cf87e3e239e3d6c
Subject: Re: #428 Accept-Language ordering for identical qvalues
Archived-At: <>
X-Mailing-List: <> archive/latest/16023
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

sorry, missed that ;q=0.8

ignore that comment about order pref

------ Original Message ------
From: "Adrien W. de Croy" <>
To: "Amos Jeffries" <>nz>; "Nicholas Shanks" 
Cc: "Roy T. Fielding" <>om>; "Julian Reschke" 
<>de>; "" <>
Sent: 19/01/2013 8:09:52 p.m.
Subject: Re: #428 Accept-Language ordering for identical qvalues
>RFC 2616 already strongly implies (in prose not ABNF) order preference
>>From 14.4
>"The quality value defaults to "q=1". For example,
>Accept-Language: da, en-gb;q=0.8, en;q=0.7
>would mean: "I prefer Danish, but will accept British English and
>other types of English."
>The prose states a preference of Danish over the following languages.
>Actually the non-requirement for a server to take into account any 
>indicated preferences in Accept-* leads to some interesting conundra 
>for caching.
>For instance,
>GET /something HTTP/1.1
>Accept-Language: fr
>200 OK Document follows
>Content-Language: en
>Vary: Accept-Language
>leads to problems when the cache sees a request
>GET /something HTTP/1.1
>Accept-Language: en
>Even though it's obvious to send the cached resource, it's not correct 
>since the selecting header does not match between requests. This could 
>be ameliorated if there were ETags since at least the cached version 
>could be checked?
>------ Original Message ------
>From: "Amos Jeffries" <>
>To: "Nicholas Shanks" <>
>Cc: "Roy T. Fielding" <>om>; "Julian Reschke" 
><>>; "" <>
>Sent: 19/01/2013 5:29:20 p.m.
>Subject: Re: #428 Accept-Language ordering for identical qvalues
>>On 19/01/2013 1:50 a.m., Nicholas Shanks wrote:
>>>>>On 2013-01-18 09:46, Amos Jeffries wrote:
>>>>>>I'm with Roy on this one. It's not adding any new requirement 
>>>I feel I concur with Julian the most.
>>>On 18 January 2013 12:11, Roy T. Fielding <> wrote:
>>>>Yes. It would also be conformant to send Mäori text.
>>>Use a macron or leave it off ;-)
>>>[Option-a] [a] on a Mac with one of the "Extended" keyboard layouts
>>>>Ignoring the preferences sent in Accept-Language is conforming 
>>>>Conformance is not a relevant issue here. What matters is what the
>>>>user actually prefers. It is my opinion that when a user sets an
>>>>Accept-Language header to
>>>>    Accept-Language: en, de
>>>>what they are actually saying is that they accept both languages
>>>>but would prefer en if the de representation is no better.
>>>You cannot assume that. They are either using a broken client, or 
>>>are acceptable. Please don't change the standard to accomodate broken
>>>clients, especially as these are going to become fewer in number as
>>>time progresses and machines get upgraded.
>>>>The reason I believe this is because user agents that allow a
>>>>user to send such a header field have explicitly instructed the
>>>>user that the field is ordered (or based the value on some other
>>>>ordered list for the host UI, as is the case for some cell phones).
>>>All UAs I know of that allow users to set an ordered list of
>>>languages, also send auto-generated q-values.
>>>Do you actually have any statistics to back up your belief, or is it
>>>just a gut feeling?
>>>Some numbers to say that "versions x and earlier of so-and-so browser
>>>on X-series phones allow users to define an ordered list but do not
>>>send q-values; those browsers currently have a worldwide market share
>>>of 0.0001%" would be useful to know whether it's worth ignoring such
>>>broken UAs to pandering to them.
>>>FWIW, my usual AL string, in browsers that let you set one, is:
>>>"en-GB, en-IE, en-AU, en-US;q=0, en;q=0.95, fr;q=0.5, de;q=0.5,
>>>zh-Hant;q=0.1, *;q=0.2"
>>>My goals should be self-evident from the q-values, specifically to 
>>>english, french or german, to demote 'complicated' Han script and 
>>>back to anything else. The US thing is to see if sites are actually
>>>obeying my preferences (I get many more "y'all"s than 406's sadly!)
>>According to the 2616 spec we are quibbling over you would get en-GB, 
>>en-IE, or en-AU if any of them were available. These being assumed to 
>>be q=1 and all equal valued; one is supposed to be selected 
>>Now suppose you had a blog page with each comment loaded by XHR as a 
>>separate GET request using that AL header and auto-translation of 
>>comments - your page looks like a group of multi-cultural responses 
>>some possibly with pidgin-English style wording despite probably all 
>>actually being en-US text to begin with. AND if you refresh the page 
>>everybodies language changes from what it was last load.
>>Versus a server which assumed en-GB, en-IE, en-AU were equal q=1 and 
>>ordered by preference would supply you with the en-GB for each 
>>response part of the page.
>>Which is the better outcome for web developers to rely on?
>>Which one is easier for servers to write fast code for?