Re: Issue 113, was: Proposed resolution for Issue 13 (language tags)

Julian Reschke wrote:
> 
> Felix Sasaki wrote:
>> ...
>> RFC 4647 defines a basic language range in sec. 2.1 which is the same 
>> as the language range of sec. 14.4 of RFC 2616. Note also the 
>> information in sec. 2.1 of RFC 4647:
>> "Note that
>> the ABNF [RFC4234] in [RFC2616] is incorrect, since it disallows the
>> use of digits anywhere in the 'language-range' (see [RFC2616errata])."
>> So you could just refer to basic language ranges of RFC 4647 and be fine.
>> ...
> 
> Indeed, thanks for pointing this out. I missed the fact that RFC 4647 
> defines basic ranges. Will make a concrete proposal later on.

Proposed text:

-- snip --
6.4.  Accept-Language

    The Accept-Language request-header field is similar to Accept, but
    restricts the set of natural languages that are preferred as a
    response to the request.  Language tags are defined in Section 3.5.

      Accept-Language = "Accept-Language" ":"
                        1#( language-range [ ";" "q" "=" qvalue ] )
      language-range  =
                <language-range, defined in [RFC4647], Section 2.1>

    Each language-range MAY be given an associated quality value which
    represents an estimate of the user's preference for the languages
    specified by that range.  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."

    For matching, the "Basic Filtering" matching scheme, defined in
    Section 3.3.1 of [RFC4647], is used:

       A language range matches a particular language tag if, in a case-
       insensitive comparison, it exactly equals the tag, or if it
       exactly equals a prefix of the tag such that the first character
       following the prefix is "-".

    The special range "*", if present in the Accept-Language field,
    matches every tag not matched by any other range present in the
    Accept-Language field.
-- snip --

This

1) delegates the definition of language-range to RFC4647, Section 2.1, and

2) delegates the definition of the matching function to RFC4647, Section 
3.3.1 ("Basic Filtering").

Note that the proposed text *repeats* the definition (it's just one 
sentence, so I'm trying to do the reader a favor by not actually having 
to loop up the text).

I also note that "Basic Filtering" is case-insensitive, which it wasn't 
in RFC2616. This is intentional (right?); so should it noted in the 
"Changes from RFC2616" section?

BR, Julian

Received on Friday, 1 August 2008 19:05:47 UTC