Re: RFC2616 erratum "languagetag"

(see also <http://www.w3.org/Protocols/HTTP/1.1/rfc2616bis/issues/#i13>)

Julian Reschke wrote:
> ...
>> Regarding replacing the syntax by just a link to RFC4646 will break a 
>> nice feature of rfc2616, the fact that the syntax is contained in the 
>> spec, with no need to get something else. It means also that we should 
>> change/upgrade the definition of language-range (RFC2616#14.4)
> 
> The problem is that RFC4646 has made that much harder, because now two 
> lines wouldn't be sufficient anymore (unless we deviate from RFC4646's 
> ABNF).

...and, as a matter of fact, the RFC2616 grammar already relies on rules 
imported from the URI spec.

> ...

I have looked at this again, and made experimental changes in 
<http://www.w3.org/Protocols/HTTP/1.1/rfc2616bis/draft-lafon-rfc2616bis-latest.html#rfc.issue.languagetag>.

The old text was:

3.10.  Language Tags

    A language tag identifies a natural language spoken, written, or
    otherwise conveyed by human beings for communication of information
    to other human beings.  Computer languages are explicitly excluded.
    HTTP uses language tags within the Accept-Language and Content-
    Language fields.

    The syntax and registry of HTTP language tags is the same as that
    defined by [RFC1766].  In summary, a language tag is composed of 1 or
    more parts: A primary language tag and a possibly empty series of
    subtags:

      language-tag  = primary-tag *( "-" subtag )
      primary-tag   = 1*8ALPHA
      subtag        = 1*8ALPHA

    White space is not allowed within the tag and all tags are case-
    insensitive.  The name space of language tags is administered by the
    IANA.  Example tags include:

        en, en-US, en-cockney, i-cherokee, x-pig-latin

    where any two-letter primary-tag is an ISO-639 language abbreviation
    and any two-letter initial subtag is an ISO-3166 country code.  (The
    last three tags above are not registered tags; all but the last are
    examples of tags which could be registered in future.)

The current edits say:

3.10.  Language Tags

    A language tag identifies a natural language spoken, written, or
    otherwise conveyed by human beings for communication of information
    to other human beings.  Computer languages are explicitly excluded.
    HTTP uses language tags within the Accept-Language and Content-
    Language fields.

    The syntax and registry of HTTP language tags is defined by
    [RFC4646]:

      Language-Tag  = <defined in [RFC4646], Section 2.1>

    White space is not allowed within the tag and all tags are case-
    insensitive.  The name space of language tags is administered by the
    IANA.  Example tags include:

        en, en-US, en-cockney, i-cherokee, x-pig-latin

    where any two-letter primary-tag is an ISO-639 language abbreviation
    and any two-letter initial subtag is an ISO-3166 country code.  (The
    last three tags above are not registered tags; all but the last are
    examples of tags which could be registered in future.)


So essentially I have removed the 2nd paragraph, replacing it with a 
pointer to RFC4646, and changed the BNF to just import the 
"Language-Tag" rule from there).

I'm not so sure about the remainder of the subsection? Should we keep 
the explanations and examples? If we do, are they correct as per RFC4646?

BR, Julian

Received on Sunday, 25 November 2007 17:24:24 UTC