draft-ietf-ltru-matching-13.txt   draft-ietf-ltru-matching-14.txt 
Network Working Group A. Phillips, Ed. Network Working Group A. Phillips, Ed.
Internet-Draft Yahoo! Inc. Internet-Draft Yahoo! Inc.
Obsoletes: 3066 (if approved) M. Davis, Ed. Obsoletes: 3066 (if approved) M. Davis, Ed.
Expires: November 19, 2006 Google Expires: November 30, 2006 Google
May 18, 2006 May 29, 2006
Matching of Language Tags Matching of Language Tags
draft-ietf-ltru-matching-13 draft-ietf-ltru-matching-14
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on November 19, 2006. This Internet-Draft will expire on November 30, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
Abstract Abstract
This document describes a syntax, called a "language-range", for This document describes a syntax, called a "language-range", for
specifying items in a user's language preferences, called a "language specifying items in a user's language preferences, called a "language
priority list". It also describes different mechanisms for comparing priority list". It also describes different mechanisms for comparing
skipping to change at page 4, line 48 skipping to change at page 4, line 48
A "basic language range" has the same syntax as an [RFC3066] language A "basic language range" has the same syntax as an [RFC3066] language
tag or is the single character "*". The basic language range was tag or is the single character "*". The basic language range was
originally described by HTTP/1.1 [RFC2616] and later [RFC3066]. It originally described by HTTP/1.1 [RFC2616] and later [RFC3066]. It
is defined by the following ABNF [RFC4234]: is defined by the following ABNF [RFC4234]:
language-range = (1*8ALPHA *("-" 1*8alphanum)) / "*" language-range = (1*8ALPHA *("-" 1*8alphanum)) / "*"
alphanum = ALPHA / DIGIT alphanum = ALPHA / DIGIT
A basic language range differs from the language tags defined in A basic language range differs from the language tags defined in
[RFC3066bis] only in that there is no requirement that they be "well- [RFC3066bis] only in that there is no requirement that it be "well-
formed" or be validated against the IANA Language Subtag Registry. formed" or be validated against the IANA Language Subtag Registry.
Such ill-formed ranges will probably not match anything. Note that Such ill-formed ranges will probably not match anything. Note that
the ABNF [RFC4234] in [RFC2616] is incorrect, since it disallows the the ABNF [RFC4234] in [RFC2616] is incorrect, since it disallows the
use of digits anywhere in the 'language-range' (see: use of digits anywhere in the 'language-range' (see:
[RFC2616errata]). [RFC2616errata]).
2.2. Extended Language Range 2.2. Extended Language Range
Occasionally users will wish to select a set of language tags based Occasionally users will wish to select a set of language tags based
skipping to change at page 10, line 41 skipping to change at page 10, line 41
intelligible languages. intelligible languages.
3.3.1. Basic Filtering 3.3.1. Basic Filtering
Basic filtering compares basic language ranges to language tags. Basic filtering compares basic language ranges to language tags.
Each basic language range in the language priority list is considered Each basic language range in the language priority list is considered
in turn, according to priority. A language range matches a in turn, according to priority. A language range matches a
particular language tag if, in a case-insensitive comparison, it particular language tag if, in a case-insensitive comparison, it
exactly equals the tag, or if it exactly equals a prefix of the tag exactly equals the tag, or if it exactly equals a prefix of the tag
such that the first character following the prefix is "-". For such that the first character following the prefix is "-". For
example, the language-range "de-de" (German as used in German) example, the language-range "de-de" (German as used in Germany)
matches the language tag "de-DE-1996" (German as used in Germany, matches the language tag "de-DE-1996" (German as used in Germany,
orthography of 1996), but not the language tags "de-Deva" (German as orthography of 1996), but not the language tags "de-Deva" (German as
written in the Devanagari script) or "de-Latn-DE" (German, Latin written in the Devanagari script) or "de-Latn-DE" (German, Latin
script, as used in Germany). script, as used in Germany).
The special range "*" in a language priority list matches any tag. A The special range "*" in a language priority list matches any tag. A
protocol which uses language ranges MAY specify additional rules protocol which uses language ranges MAY specify additional rules
about the semantics of "*"; for instance, HTTP/1.1 [RFC2616] about the semantics of "*"; for instance, HTTP/1.1 [RFC2616]
specifies that the range "*" matches only languages not matched by specifies that the range "*" matches only languages not matched by
any other range within an "Accept-Language" header. any other range within an "Accept-Language" header.
skipping to change at page 15, line 6 skipping to change at page 15, line 6
Each application, protocol, or specification that uses lookup MUST Each application, protocol, or specification that uses lookup MUST
define the defaulting behavior when no tag matches the language define the defaulting behavior when no tag matches the language
priority list. What this action consists of strongly depends on how priority list. What this action consists of strongly depends on how
lookup is being applied. Some examples of defaulting behavior lookup is being applied. Some examples of defaulting behavior
include: include:
o return an item with no language tag or an item of a non-linguistic o return an item with no language tag or an item of a non-linguistic
nature, such as an image or sound nature, such as an image or sound
o return a null string as the language tag value, in cases where the o return a null string as the language tag value, in cases where the
protocol permits the empty value (see, for example, "xml:lang" in protocol permits the empty value (see, for example, "xml:lang" in
[XML10]) [W3C.REC-xml-20040204])
o return a particular language tag designated for the operation o return a particular language tag designated for the operation
o return the language tag "i-default" (see: [RFC2277]) o return the language tag "i-default" (see: [RFC2277])
o return an error condition or error message o return an error condition or error message
o return a list of available languages for the user to select from o return a list of available languages for the user to select from
When performing lookup using a language priority list, the When performing lookup using a language priority list, the
skipping to change at page 22, line 43 skipping to change at page 22, line 43
[RFC2616errata] [RFC2616errata]
IETF, "HTTP/1.1 Specification Errata", October 2004, IETF, "HTTP/1.1 Specification Errata", October 2004,
<http://purl.org/NET/http-errata>. <http://purl.org/NET/http-errata>.
[RFC3066] Alvestrand, H., "Tags for the Identification of [RFC3066] Alvestrand, H., "Tags for the Identification of
Languages", BCP 47, RFC 3066, January 2001. Languages", BCP 47, RFC 3066, January 2001.
[RFC3282] Alvestrand, H., "Content Language Headers", RFC 3282, [RFC3282] Alvestrand, H., "Content Language Headers", RFC 3282,
May 2002. May 2002.
[XML10] Bray (et al), T., "Extensible Markup Language (XML) 1.0", [W3C.REC-xml-20040204]
February 2004. Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T.,
and E. Maler, "Extensible Markup Language (XML) 1.0 (Third
Edition)", W3C REC REC-xml-20040204, February 2004.
Appendix A. Acknowledgements Appendix A. Acknowledgements
Any list of contributors is bound to be incomplete; please regard the Any list of contributors is bound to be incomplete; please regard the
following as only a selection from the group of people who have following as only a selection from the group of people who have
contributed to make this document what it is today. contributed to make this document what it is today.
The contributors to [RFC3066bis], [RFC3066] and [RFC1766], each of The contributors to [RFC3066bis], [RFC3066] and [RFC1766], each of
which is a precursor to this document, made enormous contributions which is a precursor to this document, made enormous contributions
directly or indirectly to this document and are generally responsible directly or indirectly to this document and are generally responsible
 End of changes. 7 change blocks. 
9 lines changed or deleted 11 lines changed or added

This html diff was produced by rfcdiff 1.31. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/