draft-ietf-ltru-registry-08.txt   draft-ietf-ltru-registry-09.txt 
Network Working Group A. Phillips, Ed. Network Working Group A. Phillips, Ed.
Internet-Draft Quest Software Internet-Draft Quest Software
Expires: December 30, 2005 M. Davis, Ed. Expires: January 12, 2006 M. Davis, Ed.
IBM IBM
June 28, 2005 July 11, 2005
Tags for Identifying Languages Tags for Identifying Languages
draft-ietf-ltru-registry-08 draft-ietf-ltru-registry-09
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 December 30, 2005. This Internet-Draft will expire on January 12, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
Abstract Abstract
This document describes the structure, content, construction, and This document describes the structure, content, construction, and
semantics of language tags for use in cases where it is desirable to semantics of language tags for use in cases where it is desirable to
indicate the language used in an information object. It also indicate the language used in an information object. It also
skipping to change at page 2, line 18 skipping to change at page 2, line 18
2. The Language Tag . . . . . . . . . . . . . . . . . . . . . . . 4 2. The Language Tag . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Language Subtag Sources and Interpretation . . . . . . . . 6 2.2 Language Subtag Sources and Interpretation . . . . . . . . 6
2.2.1 Primary Language Subtag . . . . . . . . . . . . . . . 7 2.2.1 Primary Language Subtag . . . . . . . . . . . . . . . 7
2.2.2 Extended Language Subtags . . . . . . . . . . . . . . 9 2.2.2 Extended Language Subtags . . . . . . . . . . . . . . 9
2.2.3 Script Subtag . . . . . . . . . . . . . . . . . . . . 10 2.2.3 Script Subtag . . . . . . . . . . . . . . . . . . . . 10
2.2.4 Region Subtag . . . . . . . . . . . . . . . . . . . . 11 2.2.4 Region Subtag . . . . . . . . . . . . . . . . . . . . 11
2.2.5 Variant Subtags . . . . . . . . . . . . . . . . . . . 13 2.2.5 Variant Subtags . . . . . . . . . . . . . . . . . . . 13
2.2.6 Extension Subtags . . . . . . . . . . . . . . . . . . 14 2.2.6 Extension Subtags . . . . . . . . . . . . . . . . . . 14
2.2.7 Private Use Subtags . . . . . . . . . . . . . . . . . 15 2.2.7 Private Use Subtags . . . . . . . . . . . . . . . . . 15
2.2.8 Pre-Existing RFC 3066 Registrations . . . . . . . . . 15 2.2.8 Pre-Existing RFC 3066 Registrations . . . . . . . . . 16
2.2.9 Classes of Conformance . . . . . . . . . . . . . . . . 16 2.2.9 Classes of Conformance . . . . . . . . . . . . . . . . 16
3. Registry Format and Maintenance . . . . . . . . . . . . . . . 18 3. Registry Format and Maintenance . . . . . . . . . . . . . . . 18
3.1 Format of the IANA Language Subtag Registry . . . . . . . 18 3.1 Format of the IANA Language Subtag Registry . . . . . . . 18
3.2 Maintenance of the Registry . . . . . . . . . . . . . . . 23 3.2 Maintenance of the Registry . . . . . . . . . . . . . . . 23
3.3 Stability of IANA Registry Entries . . . . . . . . . . . . 25 3.3 Stability of IANA Registry Entries . . . . . . . . . . . . 25
3.4 Registration Procedure for Subtags . . . . . . . . . . . . 28 3.4 Registration Procedure for Subtags . . . . . . . . . . . . 28
3.5 Possibilities for Registration . . . . . . . . . . . . . . 31 3.5 Possibilities for Registration . . . . . . . . . . . . . . 31
3.6 Extensions and Extensions Namespace . . . . . . . . . . . 33 3.6 Extensions and Extensions Namespace . . . . . . . . . . . 33
3.7 Initialization of the Registry . . . . . . . . . . . . . . 36 3.7 Initialization of the Registry . . . . . . . . . . . . . . 36
4. Formation and Processing of Language Tags . . . . . . . . . . 37 4. Formation and Processing of Language Tags . . . . . . . . . . 37
skipping to change at page 2, line 42 skipping to change at page 2, line 42
4.3.1 Working with Limited Buffer Sizes . . . . . . . . . . 40 4.3.1 Working with Limited Buffer Sizes . . . . . . . . . . 40
4.3.2 Truncation of Language Tags . . . . . . . . . . . . . 42 4.3.2 Truncation of Language Tags . . . . . . . . . . . . . 42
4.4 Canonicalization of Language Tags . . . . . . . . . . . . 42 4.4 Canonicalization of Language Tags . . . . . . . . . . . . 42
4.5 Considerations for Private Use Subtags . . . . . . . . . . 44 4.5 Considerations for Private Use Subtags . . . . . . . . . . 44
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46
5.1 Language Subtag Registry . . . . . . . . . . . . . . . . . 46 5.1 Language Subtag Registry . . . . . . . . . . . . . . . . . 46
5.2 Extensions Registry . . . . . . . . . . . . . . . . . . . 47 5.2 Extensions Registry . . . . . . . . . . . . . . . . . . . 47
6. Security Considerations . . . . . . . . . . . . . . . . . . . 48 6. Security Considerations . . . . . . . . . . . . . . . . . . . 48
7. Character Set Considerations . . . . . . . . . . . . . . . . . 49 7. Character Set Considerations . . . . . . . . . . . . . . . . . 49
8. Changes from RFC 3066 . . . . . . . . . . . . . . . . . . . . 50 8. Changes from RFC 3066 . . . . . . . . . . . . . . . . . . . . 50
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 53 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 54
9.1 Normative References . . . . . . . . . . . . . . . . . . . 53 9.1 Normative References . . . . . . . . . . . . . . . . . . . 54
9.2 Informative References . . . . . . . . . . . . . . . . . . 54 9.2 Informative References . . . . . . . . . . . . . . . . . . 55
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 55 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 56
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 56 A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 57
B. Examples of Language Tags (Informative) . . . . . . . . . . . 57 B. Examples of Language Tags (Informative) . . . . . . . . . . . 58
Intellectual Property and Copyright Statements . . . . . . . . 60 Intellectual Property and Copyright Statements . . . . . . . . 61
1. Introduction 1. Introduction
Human beings on our planet have, past and present, used a number of Human beings on our planet have, past and present, used a number of
languages. There are many reasons why one would want to identify the languages. There are many reasons why one would want to identify the
language used when presenting or requesting information. language used when presenting or requesting information.
User's language preferences often need to be identified so that User's language preferences often need to be identified so that
appropriate processing can be applied. For example, the user's appropriate processing can be applied. For example, the user's
language preferences in a Web browser can be used to select Web pages language preferences in a Web browser can be used to select Web pages
skipping to change at page 4, line 8 skipping to change at page 4, line 8
This document replaces RFC 3066, which replaced RFC 1766. For a list This document replaces RFC 3066, which replaced RFC 1766. For a list
of changes in this document, see Section 8. of changes in this document, see Section 8.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. The Language Tag 2. The Language Tag
The language tag always defines a language as used (which includes The language tag always defines a language as used (which includes
being spoken, written, signed, or otherwise signaled) by human being spoken, written, signed, or otherwise signaled) by human beings
beings for communication of information to other human beings. for communication of information to other human beings. Computer
Computer languages such as programming languages are explicitly languages such as programming languages are explicitly excluded.
excluded.
2.1 Syntax 2.1 Syntax
The language tag is composed of one or more parts or "subtags". Each The language tag is composed of one or more parts or "subtags". Each
subtag consists of a sequence of alpha-numeric characters. Subtags subtag consists of a sequence of alpha-numeric characters. Subtags
are distinguished and separated from one another by a hyphen ("-", are distinguished and separated from one another by a hyphen ("-",
ABNF %x2D). A language tag consists of a "primary language" subtag ABNF %x2D). A language tag consists of a "primary language" subtag
and a (possibly empty) series of subsequent subtags, each of which and a (possibly empty) series of subsequent subtags, each of which
refines or narrows the range of language identified by the overall refines or narrows the range of language identified by the overall
tag. tag.
skipping to change at page 5, line 14 skipping to change at page 5, line 14
The syntax of the language tag in ABNF [RFC2234bis] is: The syntax of the language tag in ABNF [RFC2234bis] is:
Language-Tag = (lang Language-Tag = (lang
*3("-" extlang) *3("-" extlang)
["-" script] ["-" script]
["-" region] ["-" region]
*("-" variant) *("-" variant)
*("-" extension) *("-" extension)
["-" privateuse]) ["-" privateuse])
/ privateuse ; private-use tag / privateuse ; private use tag
/ grandfathered ; grandfathered registrations / grandfathered ; grandfathered registrations
lang = 2*4ALPHA ; shortest ISO 639 code lang = 2*4ALPHA ; shortest ISO 639 code
/ registered-lang / registered-lang
extlang = 3ALPHA ; reserved for future use extlang = 3ALPHA ; reserved for future use
script = 4ALPHA ; ISO 15924 code script = 4ALPHA ; ISO 15924 code
region = 2ALPHA ; ISO 3166 code region = 2ALPHA ; ISO 3166 code
/ 3DIGIT ; UN country number / 3DIGIT ; UN country number
variant = 5*8alphanum ; registered variants variant = 5*8alphanum ; registered variants
/ ( DIGIT 3alphanum ) / ( DIGIT 3alphanum )
skipping to change at page 6, line 5 skipping to change at page 6, line 5
is not permitted in a language tag. For examples of language tags, is not permitted in a language tag. For examples of language tags,
see Appendix B. see Appendix B.
Note that although [RFC2234bis] refers to octets, the language tags Note that although [RFC2234bis] refers to octets, the language tags
described in this document are sequences of characters from the US- described in this document are sequences of characters from the US-
ASCII repertoire. Language tags MAY be used in documents and ASCII repertoire. Language tags MAY be used in documents and
applications that use other encodings, so long as these encompass the applications that use other encodings, so long as these encompass the
US-ASCII repertoire. An example of this would be an XML document US-ASCII repertoire. An example of this would be an XML document
that uses the UTF-16LE [RFC2781] encoding of [Unicode]. that uses the UTF-16LE [RFC2781] encoding of [Unicode].
The tags and their subtags, including private-use and extensions, are The tags and their subtags, including private use and extensions, are
to be treated as case insensitive: there exist conventions for the to be treated as case insensitive: there exist conventions for the
capitalization of some of the subtags, but these MUST not be taken to capitalization of some of the subtags, but these MUST not be taken to
carry meaning. carry meaning.
For example: For example:
o [ISO639-1] recommends that language codes be written in lower case o [ISO639-1] recommends that language codes be written in lower case
('mn' Mongolian). ('mn' Mongolian).
o [ISO3166] recommends that country codes be capitalized ('MN' o [ISO3166] recommends that country codes be capitalized ('MN'
skipping to change at page 7, line 22 skipping to change at page 7, line 22
unrecognized. This allows tags to be parsed and processed without unrecognized. This allows tags to be parsed and processed without
reference to the latest version of the underlying standards or the reference to the latest version of the underlying standards or the
IANA registry and makes the associated exception handling when IANA registry and makes the associated exception handling when
parsing tags simpler. parsing tags simpler.
Subtags in the IANA registry that do not come from an underlying Subtags in the IANA registry that do not come from an underlying
standard can only appear in specific positions in a tag. standard can only appear in specific positions in a tag.
Specifically, they can only occur as primary language subtags or as Specifically, they can only occur as primary language subtags or as
variant subtags. variant subtags.
Note that sequences of private-use and extension subtags MUST occur Note that sequences of private use and extension subtags MUST occur
at the end of the sequence of subtags and MUST NOT be interspersed at the end of the sequence of subtags and MUST NOT be interspersed
with subtags defined elsewhere in this document. with subtags defined elsewhere in this document.
Single letter and digit subtags are reserved for current or future Single letter and digit subtags are reserved for current or future
use. These include the following current uses: use. These include the following current uses:
o The single letter subtag 'x' is reserved to introduce a sequence o The single letter subtag 'x' is reserved to introduce a sequence
of private-use subtags. The interpretation of any private-use of private use subtags. The interpretation of any private use
subtags is defined solely by private agreement and is not defined subtags is defined solely by private agreement and is not defined
by the rules in this section or in any standard or registry by the rules in this section or in any standard or registry
defined in this document. defined in this document.
o All other single letter subtags are reserved to introduce o All other single letter subtags are reserved to introduce
standardized extension subtag sequences as described in standardized extension subtag sequences as described in
Section 3.6. Section 3.6.
The single letter subtag 'i' is used by some grandfathered tags, such The single letter subtag 'i' is used by some grandfathered tags, such
as "i-enochian", where it always appears in the first position and as "i-enochian", where it always appears in the first position and
cannot be confused with an extension. cannot be confused with an extension.
2.2.1 Primary Language Subtag 2.2.1 Primary Language Subtag
The primary language subtag is the first subtag in a language tag The primary language subtag is the first subtag in a language tag
(with the exception of private-use and certain grandfathered tags) (with the exception of private use and certain grandfathered tags)
and cannot be omitted. The following rules apply to the primary and cannot be omitted. The following rules apply to the primary
language subtag: language subtag:
1. All two character language subtags were defined in the IANA 1. All two character language subtags were defined in the IANA
registry according to the assignments found in the standard ISO registry according to the assignments found in the standard ISO
639 Part 1, "ISO 639-1:2002, Codes for the representation of 639 Part 1, "ISO 639-1:2002, Codes for the representation of
names of languages -- Part 1: Alpha-2 code" [ISO639-1], or using names of languages -- Part 1: Alpha-2 code" [ISO639-1], or using
assignments subsequently made by the ISO 639 Part 1 maintenance assignments subsequently made by the ISO 639 Part 1 maintenance
agency or governing standardization bodies. agency or governing standardization bodies.
skipping to change at page 8, line 19 skipping to change at page 8, line 19
registry according to the assignments found in ISO 639 Part 2, registry according to the assignments found in ISO 639 Part 2,
"ISO 639-2:1998 - Codes for the representation of names of "ISO 639-2:1998 - Codes for the representation of names of
languages -- Part 2: Alpha-3 code - edition 1" [ISO639-2], or languages -- Part 2: Alpha-3 code - edition 1" [ISO639-2], or
assignments subsequently made by the ISO 639 Part 2 maintenance assignments subsequently made by the ISO 639 Part 2 maintenance
agency or governing standardization bodies. agency or governing standardization bodies.
3. The subtags in the range 'qaa' through 'qtz' are reserved for 3. The subtags in the range 'qaa' through 'qtz' are reserved for
private use in language tags. These subtags correspond to codes private use in language tags. These subtags correspond to codes
reserved by ISO 639-2 for private use. These codes MAY be used reserved by ISO 639-2 for private use. These codes MAY be used
for non-registered primary-language subtags (instead of using for non-registered primary-language subtags (instead of using
private-use subtags following 'x-'). Please refer to Section 4.5 private use subtags following 'x-'). Please refer to Section 4.5
for more information on private use subtags. for more information on private use subtags.
4. All four character language subtags are reserved for possible 4. All four character language subtags are reserved for possible
future standardization. future standardization.
5. All language subtags of 5 to 8 characters in length in the IANA 5. All language subtags of 5 to 8 characters in length in the IANA
registry were defined via the registration process in Section 3.4 registry were defined via the registration process in Section 3.4
and MAY be used to form the primary language subtag. At the time and MAY be used to form the primary language subtag. At the time
this document was created, there were no examples of this kind of this document was created, there were no examples of this kind of
subtag and future registrations of this type will be discouraged: subtag and future registrations of this type will be discouraged:
skipping to change at page 10, line 43 skipping to change at page 10, line 43
this language. this language.
2. Script subtags MUST immediately follow the primary language 2. Script subtags MUST immediately follow the primary language
subtag and all extended language subtags and MUST occur before subtag and all extended language subtags and MUST occur before
any other type of subtag described below. any other type of subtag described below.
3. The script subtags 'Qaaa' through 'Qabx' are reserved for private 3. The script subtags 'Qaaa' through 'Qabx' are reserved for private
use in language tags. These subtags correspond to codes reserved use in language tags. These subtags correspond to codes reserved
by ISO 15924 for private use. These codes MAY be used for non- by ISO 15924 for private use. These codes MAY be used for non-
registered script values. Please refer to Section 4.5 for more registered script values. Please refer to Section 4.5 for more
information on private-use subtags. information on private use subtags.
4. Script subtags cannot be registered using the process in 4. Script subtags cannot be registered using the process in
Section 3.4 of this document. Variant subtags MAY be considered Section 3.4 of this document. Variant subtags MAY be considered
for registration for that purpose. for registration for that purpose.
5. There MUST be at most one script subtag in a language tag and the 5. There MUST be at most one script subtag in a language tag and the
script subtag SHOULD be omitted when it adds no distinguishing script subtag SHOULD be omitted when it adds no distinguishing
value to the tag or when the primary language subtag's record value to the tag or when the primary language subtag's record
includes a Supress-Script field listing the applicable script includes a Suppress-Script field listing the applicable script
subtag. subtag.
Example: "sr-Latn" represents Serbian written using the Latin script. Example: "sr-Latn" represents Serbian written using the Latin script.
2.2.4 Region Subtag 2.2.4 Region Subtag
Region subtags are used to indicate linguistic variations associated Region subtags are used to indicate linguistic variations associated
with or appropriate to a specific country, territory, or region. with or appropriate to a specific country, territory, or region.
Typically, a region subtag is used to indicate regional dialects or Typically, a region subtag is used to indicate regional dialects or
usage, or region-specific spelling conventions. A region subtag can usage, or region-specific spelling conventions. A region subtag can
skipping to change at page 12, line 41 skipping to change at page 12, line 41
values match the ISO 3166 alpha-2 codes.) values match the ISO 3166 alpha-2 codes.)
5. There MUST be at most one region subtag in a language tag and the 5. There MUST be at most one region subtag in a language tag and the
region subtag MAY be omitted, as when it adds no distinguishing region subtag MAY be omitted, as when it adds no distinguishing
value to the tag. value to the tag.
6. The region subtags 'AA', 'QM'-'QZ', 'XA'-'XZ', and 'ZZ' are 6. The region subtags 'AA', 'QM'-'QZ', 'XA'-'XZ', and 'ZZ' are
reserved for private use in language tags. These subtags reserved for private use in language tags. These subtags
correspond to codes reserved by ISO 3166 for private use. These correspond to codes reserved by ISO 3166 for private use. These
codes MAY be used for private use region subtags (instead of codes MAY be used for private use region subtags (instead of
using a private-use subtag sequence). Please refer to using a private use subtag sequence). Please refer to
Section 4.5 for more information on private use subtags. Section 4.5 for more information on private use subtags.
"de-CH" represents German ('de') as used in Switzerland ('CH'). "de-CH" represents German ('de') as used in Switzerland ('CH').
"sr-Latn-CS" represents Serbian ('sr') written using Latin script "sr-Latn-CS" represents Serbian ('sr') written using Latin script
('Latn') as used in Serbia and Montenegro ('CS'). ('Latn') as used in Serbia and Montenegro ('CS').
"es-419" represents Spanish ('es') appropriate to the UN-defined "es-419" represents Spanish ('es') appropriate to the UN-defined
Latin America and Caribbean region ('419'). Latin America and Caribbean region ('419').
skipping to change at page 13, line 17 skipping to change at page 13, line 17
Variant subtags are used to indicate additional, well-recognized Variant subtags are used to indicate additional, well-recognized
variations that define a language or its dialects which are not variations that define a language or its dialects which are not
covered by other available subtags. The following rules apply to the covered by other available subtags. The following rules apply to the
variant subtags: variant subtags:
1. Variant subtags are not associated with any external standard. 1. Variant subtags are not associated with any external standard.
Variant subtags and their meanings are defined by the Variant subtags and their meanings are defined by the
registration process defined in Section 3.4. registration process defined in Section 3.4.
2. Variant subtags MUST follow all of the other defined subtags, but 2. Variant subtags MUST follow all of the other defined subtags, but
precede any extension or private-use subtag sequences. precede any extension or private use subtag sequences.
3. More than one variant MAY be used to form the language tag. 3. More than one variant MAY be used to form the language tag.
4. Variant subtags MUST be registered with IANA according to the 4. Variant subtags MUST be registered with IANA according to the
rules in Section 3.4 of this document before being used to form rules in Section 3.4 of this document before being used to form
language tags. In order to distinguish variants from other types language tags. In order to distinguish variants from other types
of subtags, registrations MUST meet the following length and of subtags, registrations MUST meet the following length and
content restrictions: content restrictions:
1. Variant subtags that begin with a letter (a-z, A-Z) MUST be 1. Variant subtags that begin with a letter (a-z, A-Z) MUST be
skipping to change at page 14, line 17 skipping to change at page 14, line 17
2.2.6 Extension Subtags 2.2.6 Extension Subtags
Extensions provide a mechanism for extending language tags for use in Extensions provide a mechanism for extending language tags for use in
various applications. See: Section 3.6. The following rules apply various applications. See: Section 3.6. The following rules apply
to extensions: to extensions:
1. Extension subtags are separated from the other subtags defined 1. Extension subtags are separated from the other subtags defined
in this document by a single-letter subtag ("singleton"). The in this document by a single-letter subtag ("singleton"). The
singleton MUST be one allocated to a registration authority via singleton MUST be one allocated to a registration authority via
the mechanism described in Section 3.6 and cannot be the letter the mechanism described in Section 3.6 and cannot be the letter
'x', which is reserved for private-use subtag sequences. 'x', which is reserved for private use subtag sequences.
2. Note: Private-use subtag sequences starting with the singleton 2. Note: Private use subtag sequences starting with the singleton
subtag 'x' are described below. subtag 'x' are described below.
3. An extension MUST follow at least a primary language subtag. 3. An extension MUST follow at least a primary language subtag.
That is, a language tag cannot begin with an extension. That is, a language tag cannot begin with an extension.
Extensions extend language tags, they do not override or replace Extensions extend language tags, they do not override or replace
them. For example, "a-value" is not a well-formed language tag, them. For example, "a-value" is not a well-formed language tag,
while "de-a-value" is. while "de-a-value" is.
4. Each singleton subtag MUST appear at most one time in each tag 4. Each singleton subtag MUST appear at most one time in each tag
(other than as a private-use subtag). That is, singleton (other than as a private use subtag). That is, singleton
subtags MUST NOT be repeated. For example, the tag "en-a-bbb-a- subtags MUST NOT be repeated. For example, the tag "en-a-bbb-a-
ccc" is invalid because the subtag 'a' appears twice. Note that ccc" is invalid because the subtag 'a' appears twice. Note that
the tag "en-a-bbb-x-a-ccc" is valid because the second the tag "en-a-bbb-x-a-ccc" is valid because the second
appearance of the singleton 'a' is in a private use sequence. appearance of the singleton 'a' is in a private use sequence.
5. Extension subtags MUST meet all of the requirements for the 5. Extension subtags MUST meet all of the requirements for the
content and format of subtags defined in this document. content and format of subtags defined in this document.
6. Extension subtags MUST meet whatever requirements are set by the 6. Extension subtags MUST meet whatever requirements are set by the
document that defines their singleton prefix and whatever document that defines their singleton prefix and whatever
skipping to change at page 15, line 26 skipping to change at page 15, line 26
Section 4.4. Section 4.4.
For example, if the prefix singleton 'r' and the shown subtags were For example, if the prefix singleton 'r' and the shown subtags were
defined, then the following tag would be a valid example: "en-Latn- defined, then the following tag would be a valid example: "en-Latn-
GB-boont-r-extended-sequence-x-private" GB-boont-r-extended-sequence-x-private"
2.2.7 Private Use Subtags 2.2.7 Private Use Subtags
Private use subtags are used to indicate distinctions in language Private use subtags are used to indicate distinctions in language
important in a given context by private agreement. The following important in a given context by private agreement. The following
rules apply to private-use subtags: rules apply to private use subtags:
1. Private-use subtags are separated from the other subtags defined 1. Private use subtags are separated from the other subtags defined
in this document by the reserved single-character subtag 'x'. in this document by the reserved single-character subtag 'x'.
2. Private-use subtags MUST follow all language, extended language, 2. Private use subtags MUST conform to the format and content
constraints defined in the ABNF for all subtags.
3. Private use subtags MUST follow all language, extended language,
script, region, variant, and extension subtags in the tag. script, region, variant, and extension subtags in the tag.
Another way of saying this is that all subtags following the Another way of saying this is that all subtags following the
singleton 'x' MUST be considered private use. Example: The singleton 'x' MUST be considered private use. Example: The
subtag 'US' in the tag "en-x-US" is a private use subtag. subtag 'US' in the tag "en-x-US" is a private use subtag.
3. A tag MAY consist entirely of private-use subtags. 4. A tag MAY consist entirely of private use subtags.
4. No source is defined for private use subtags. Use of private use 5. No source is defined for private use subtags. Use of private use
subtags is by private agreement only. subtags is by private agreement only.
For example: Users who wished to utilize SIL Ethnologue for 6. Private use subtags are NOT RECOMMENDED where alternatives exist
identification might agree to exchange tags such as "az-Arab-x-AZE- or for general interchange. See Section 4.5 for more information
derbend". This example contains two private-use subtags. The first on private use subtag choice.
is 'AZE' and the second is 'derbend'.
For example: Users who wished to utilize codes from the Ethnologue
publication of SIL International for language identification might
agree to exchange tags such as "az-Arab-x-AZE-derbend". This example
contains two private use subtags. The first is 'AZE' and the second
is 'derbend'.
2.2.8 Pre-Existing RFC 3066 Registrations 2.2.8 Pre-Existing RFC 3066 Registrations
Existing IANA-registered language tags from RFC 1766 and/or RFC 3066 Existing IANA-registered language tags from RFC 1766 and/or RFC 3066
maintain their validity. IANA will maintain these tags in the maintain their validity. IANA will maintain these tags in the
registry under either the "grandfathered" or "redundant" type. For registry under either the "grandfathered" or "redundant" type. For
more information see Section 3.7. more information see Section 3.7.
It is important to note that all language tags formed under the It is important to note that all language tags formed under the
guidelines in this document were either legal, well-formed tags or guidelines in this document were either legal, well-formed tags or
skipping to change at page 16, line 22 skipping to change at page 16, line 30
regard to the rules and practices described in this document. There regard to the rules and practices described in this document. There
are two classes of conforming implementations described by this are two classes of conforming implementations described by this
document: "well-formed" processors and "validating" processors. document: "well-formed" processors and "validating" processors.
Claims of conformance SHOULD explicitly reference one of these Claims of conformance SHOULD explicitly reference one of these
definitions. definitions.
An implementation that claims to check for well-formed language tags An implementation that claims to check for well-formed language tags
MUST: MUST:
o Check that the tag and all of its subtags, including extension and o Check that the tag and all of its subtags, including extension and
private-use subtags, conform to the ABNF or that the tag is on the private use subtags, conform to the ABNF or that the tag is on the
list of grandfathered tags. list of grandfathered tags.
o Check that singleton subtags that identify extensions do not o Check that singleton subtags that identify extensions do not
repeat. For example, the tag "en-a-xx-b-yy-a-zz" is not well- repeat. For example, the tag "en-a-xx-b-yy-a-zz" is not well-
formed. formed.
Well-formed processors are strongly encouraged to implement the Well-formed processors are strongly encouraged to implement the
canonicalization rules contained in Section 4.4. canonicalization rules contained in Section 4.4.
An implementation that claims to be validating MUST: An implementation that claims to be validating MUST:
skipping to change at page 18, line 15 skipping to change at page 18, line 15
3. Registry Format and Maintenance 3. Registry Format and Maintenance
This section defines the Language Subtag Registry and the maintenance This section defines the Language Subtag Registry and the maintenance
and update procedures associated with it. and update procedures associated with it.
The language subtag registry will be maintained so that, except for The language subtag registry will be maintained so that, except for
extension subtags, it is possible to validate all of the subtags that extension subtags, it is possible to validate all of the subtags that
appear in a language tag under the provisions of this document or its appear in a language tag under the provisions of this document or its
revisions or successors. In addition, the meaning of the various revisions or successors. In addition, the meaning of the various
subtags will be unambiguous and stable over time. (The meaning of subtags will be unambiguous and stable over time. (The meaning of
private-use subtags, of course, is not defined by the IANA registry.) private use subtags, of course, is not defined by the IANA registry.)
The registry defined under this document contains a comprehensive The registry defined under this document contains a comprehensive
list of all of the subtags valid in language tags. This allows list of all of the subtags valid in language tags. This allows
implementers a straightforward and reliable way to validate language implementers a straightforward and reliable way to validate language
tags. tags.
3.1 Format of the IANA Language Subtag Registry 3.1 Format of the IANA Language Subtag Registry
The IANA Language Subtag Registry ("the registry") will consist of a The IANA Language Subtag Registry ("the registry") will consist of a
text file that is machine readable in the format described in this text file that is machine readable in the format described in this
skipping to change at page 21, line 41 skipping to change at page 21, line 41
* Suppress-Script contains a script subtag that SHOULD NOT be * Suppress-Script contains a script subtag that SHOULD NOT be
used to form language tags with the associated primary language used to form language tags with the associated primary language
subtag. This field MUST only appear in records whose 'Type' subtag. This field MUST only appear in records whose 'Type'
field-value is 'language'. See Section 4.1. field-value is 'language'. See Section 4.1.
The field 'Deprecated' MAY be added to any record via the maintenance The field 'Deprecated' MAY be added to any record via the maintenance
process described in Section 3.2 or via the registration process process described in Section 3.2 or via the registration process
described in Section 3.4. Usually the addition of a 'Deprecated' described in Section 3.4. Usually the addition of a 'Deprecated'
field is due to the action of one of the standards bodies, such as field is due to the action of one of the standards bodies, such as
ISO 3166, withdrawing a code. In some historical cases it might not ISO 3166, withdrawing a code. In some historical cases it might not
have been possible to reconstruct the original deprecation date. have been possible to reconstruct the original deprecation date. For
For these cases, an approximate date appears in the registry. these cases, an approximate date appears in the registry. Although
Although valid in language tags, subtags and tags with a 'Deprecated' valid in language tags, subtags and tags with a 'Deprecated' field
field are deprecated and validating processors SHOULD NOT generate are deprecated and validating processors SHOULD NOT generate these
these subtags. Note that a record that contains a 'Deprecated' field subtags. Note that a record that contains a 'Deprecated' field and
and no corresponding 'Preferred-Value' field has no replacement no corresponding 'Preferred-Value' field has no replacement mapping.
mapping.
Thie field 'Preferred-Value' contains a mapping between the record in The field 'Preferred-Value' contains a mapping between the record in
which it appears and a tag or subtag which SHOULD be preferred when which it appears and a tag or subtag which SHOULD be preferred when
selected language tags. These values form three groups: selected language tags. These values form three groups:
ISO 639 language codes which were later withdrawn in favor of ISO 639 language codes which were later withdrawn in favor of
other codes. These values are mostly a historical curiosity. other codes. These values are mostly a historical curiosity.
ISO 3166 region codes which have been withdrawn in favor of a new ISO 3166 region codes which have been withdrawn in favor of a new
code. This sometimes happens when a country changes its name or code. This sometimes happens when a country changes its name or
administration in such a way that warrants a new region code. administration in such a way that warrants a new region code.
skipping to change at page 27, line 35 skipping to change at page 27, line 35
UN to create one. If there is no response from the UN UN to create one. If there is no response from the UN
within ninety days of the request being sent, the Language within ninety days of the request being sent, the Language
Subtag Reviewer SHALL prepare a proposal for entering in the Subtag Reviewer SHALL prepare a proposal for entering in the
IANA registry as soon as practical a registered variant IANA registry as soon as practical a registered variant
subtag as an alternate value for the new code. The form of subtag as an alternate value for the new code. The form of
the registered variant subtag will be at the discretion of the registered variant subtag will be at the discretion of
the Language Subtag Reviewer and MUST conform to other the Language Subtag Reviewer and MUST conform to other
restrictions on variant subtags in this document. This restrictions on variant subtags in this document. This
situation is very unlikely to ever occur. situation is very unlikely to ever occur.
11. Codes assigned by UN M.49 to countries or areas (as opposed to 11. UN M.49 has codes for both countries and areas (such as '276'
geographical regions and sub-regions) for which there is no for Germany) and geographical regions and sub-regions (such as
corresponding ISO 3166 code MUST NOT be registered, except under '150' for Europe). UN M.49 country or area codes for which
the previous provisions (as a surrogate for an ISO 3166 code there is no corresponding ISO 3166 code SHOULD NOT be
that cannot itself be registered). If it is necessary to registered, except as a surrogate for an ISO 3166 code that is
identify a region for which only a UN M.49 code exists in blocked from registration by an existing subtag. If such a code
language tags, then the registration authority for ISO 3166 becomes necessary, then the registration authority for ISO 3166
SHOULD be petitioned to assign a code, which can then be SHOULD first be petitioned to assign a code to the region. If
registered for use in language tags. At the time this document the petition for a code assignment by ISO 3166 is refused or not
was written, there were only four such codes: 830 (Channel acted on in a timely manner, the registration process described
Islands), 831 (Guernsey), 832 (Jersey), and 833 (Isle of Man). in Section 3.4 MAY then be used to register the corresponding UN
This rule exists so that UN M.49 codes remain available as the M.49 code. At the time this document was written, there were
value of last resort in cases where ISO 3166 reassigns a only four such codes: 830 (Channel Islands), 831 (Guernsey), 832
deprecated value in the registry. (Jersey), and 833 (Isle of Man). This way UN M.49 codes remain
available as the value of last resort in cases where ISO 3166
reassigns a deprecated value in the registry.
12. Stability provisions apply to grandfathered tags with this 12. Stability provisions apply to grandfathered tags with this
exception: should all of the subtags in a grandfathered tag exception: should all of the subtags in a grandfathered tag
become valid subtags in the IANA registry, then the field 'Type' become valid subtags in the IANA registry, then the field 'Type'
in that record is changed from 'grandfathered' to 'redundant'. in that record is changed from 'grandfathered' to 'redundant'.
Note that this will not affect language tags that match the Note that this will not affect language tags that match the
grandfathered tag, since these tags will now match valid grandfathered tag, since these tags will now match valid
generative subtag sequences. For example, if the subtag 'gan' generative subtag sequences. For example, if the subtag 'gan'
in the language tag "zh-gan" were to be registered as an in the language tag "zh-gan" were to be registered as an
extended language subtag, then the grandfathered tag "zh-gan" extended language subtag, then the grandfathered tag "zh-gan"
skipping to change at page 39, line 24 skipping to change at page 39, line 24
To ensure consistent backward compatibility, this document contains To ensure consistent backward compatibility, this document contains
several provisions to account for potential instability in the several provisions to account for potential instability in the
standards used to define the subtags that make up language tags. standards used to define the subtags that make up language tags.
These provisions mean that no language tag created under the rules in These provisions mean that no language tag created under the rules in
this document will become obsolete. this document will become obsolete.
4.2 Meaning of the Language Tag 4.2 Meaning of the Language Tag
The relationship between the tag and the information it relates to is The relationship between the tag and the information it relates to is
defined by the the context in which the tag appears. Accordingly, defined by the context in which the tag appears. Accordingly, this
this section can only give possible examples of its usage. section can only give possible examples of its usage.
o For a single information object, the associated language tags o For a single information object, the associated language tags
might be interpreted as the set of languages that is necessary for might be interpreted as the set of languages that is necessary for
a complete comprehension of the complete object. Example: Plain a complete comprehension of the complete object. Example: Plain
text documents. text documents.
o For an aggregation of information objects, the associated language o For an aggregation of information objects, the associated language
tags could be taken as the set of languages used inside components tags could be taken as the set of languages used inside components
of that aggregation. Examples: Document stores and libraries. of that aggregation. Examples: Document stores and libraries.
skipping to change at page 44, line 38 skipping to change at page 44, line 38
order when the subtags are placed into ASCII order: that is, "en-a- order when the subtags are placed into ASCII order: that is, "en-a-
aaa-bbb-ccc" instead of "en-a-ccc-bbb-aaa". Another extension might aaa-bbb-ccc" instead of "en-a-ccc-bbb-aaa". Another extension might
define that the order of the subtags influences their semantic define that the order of the subtags influences their semantic
meaning (so that "en-b-ccc-bbb-aaa" has a different value from "en-b- meaning (so that "en-b-ccc-bbb-aaa" has a different value from "en-b-
aaa-bbb-ccc"). However, extension specifications SHOULD be designed aaa-bbb-ccc"). However, extension specifications SHOULD be designed
so that they are tolerant of the typical processes described in so that they are tolerant of the typical processes described in
Section 3.6. Section 3.6.
4.5 Considerations for Private Use Subtags 4.5 Considerations for Private Use Subtags
Private-use subtags require private agreement between the parties Private use subtags, like all other subtags, MUST conform to the
that intend to use or exchange language tags that use them and great format and content constraints in the ABNF. Private use subtags have
caution SHOULD be used in employing them in content or protocols no meaning outside the private agreement between the parties that
intended for general use. Private-use subtags are simply useless for intend to use or exchange language tags that employ them. The same
information exchange without prior arrangement. subtags could be used with a different meaning under a separate
private agreement. They SHOULD NOT be used where alternatives exist
and SHOULD NOT be used in content or protocols intended for general
use.
The value and semantic meaning of private-use tags and of the subtags Private use subtags are simply useless for information exchange
used within such a language tag are not defined by this document. without prior arrangement. The value and semantic meaning of private
use tags and of the subtags used within such a language tag are not
defined by this document.
The use of subtags defined in the IANA registry as having a specific Subtags defined in the IANA registry as having a specific private use
private use meaning convey more information that a purely private use meaning convey more information that a purely private use tag
tag prefixed by the singleton subtag 'x'. For applications this prefixed by the singleton subtag 'x'. For applications this
additional information MAY be useful. additional information MAY be useful.
For example, the region subtags 'AA', 'ZZ' and in the ranges For example, the region subtags 'AA', 'ZZ' and in the ranges
'QM'-'QZ' and 'XA'-'XZ' (derived from ISO 3166 private use codes) MAY 'QM'-'QZ' and 'XA'-'XZ' (derived from ISO 3166 private use codes) MAY
be used to form a language tag. A tag such as "zh-Hans-XQ" conveys a be used to form a language tag. A tag such as "zh-Hans-XQ" conveys a
great deal of public, interchangeable information about the language great deal of public, interchangeable information about the language
material (that it is Chinese in the simplified Chinese script and is material (that it is Chinese in the simplified Chinese script and is
suitable for some geographic region 'XQ'). While the precise suitable for some geographic region 'XQ'). While the precise
geographic region is not known outside of private agreement, the tag geographic region is not known outside of private agreement, the tag
conveys far more information than an opaque tag such as "x-someLang", conveys far more information than an opaque tag such as "x-someLang",
skipping to change at page 52, line 27 skipping to change at page 52, line 27
generatively. Defines a method for indicating in the registry generatively. Defines a method for indicating in the registry
when script subtags are necessary for a given language tag. when script subtags are necessary for a given language tag.
o Adds the concept of a variant subtag and allows variants to be o Adds the concept of a variant subtag and allows variants to be
used generatively. used generatively.
o Adds the ability to use a class of UN M.49 tags for supra- o Adds the ability to use a class of UN M.49 tags for supra-
national regions and to resolve conflicts in the assignment of ISO national regions and to resolve conflicts in the assignment of ISO
3166 codes. 3166 codes.
o Defines the private-use tags in ISO 639, ISO 15924, and ISO 3166 o Defines the private use tags in ISO 639, ISO 15924, and ISO 3166
as the mechanism for creating private-use language, script, and as the mechanism for creating private use language, script, and
region subtags respectively. region subtags respectively.
o Adds a well-defined extension mechanism. o Adds a well-defined extension mechanism.
o Defines an extended language subtag, possibly for use with certain o Defines an extended language subtag, possibly for use with certain
anticipated features of ISO 639-3. anticipated features of ISO 639-3.
Ed Note: The following items are provided for the convenience of Ed Note: The following items are provided for the convenience of
reviewers and will be removed from the final document. reviewers and will be removed from the final document.
Changes between draft-ietf-ltru-registry-07 and this version are: Changes between draft-ietf-ltru-registry-08 and this version are:
o Removed the reference to RFC 3066 and RFC 1766 from the abstract. o Added a reference URI to the editor's address. (F.Ellermann)
(F.Ellermann)
o Minor tweaking of the text in Section 2.1. (A.Phillips) o Various nit fixings.
o Fixed rule #11 in Section 3.3 to allow UN M.49 codes to be
registered in extreme situations (#1026) (F.Ellermann, R.Presuhn,
etc.)
o Added more cautionary text about private use subtags to
Section 4.5. (#1061) (D.Pierce)
o Regularized "private-use" to always use the form "private use".
(A.Phillips)
o Additional wordsmithing on rule #11 in Section 3.3. (F.Ellermann)
9. References 9. References
9.1 Normative References 9.1 Normative References
[ISO639-1] [ISO639-1]
International Organization for Standardization, "ISO 639- International Organization for Standardization, "ISO 639-
1:2002, Codes for the representation of names of languages 1:2002, Codes for the representation of names of languages
-- Part 1: Alpha-2 code", ISO Standard 639, 2002, <ISO -- Part 1: Alpha-2 code", ISO Standard 639, 2002, <ISO
639-1>. 639-1>.
skipping to change at page 55, line 35 skipping to change at page 56, line 35
[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.
Authors' Addresses Authors' Addresses
Addison Phillips (editor) Addison Phillips (editor)
Quest Software Quest Software
Email: addison.phillips@quest.com Email: addison.phillips@quest.com
URI: http://www.inter-locale.com
Mark Davis (editor) Mark Davis (editor)
IBM IBM
Email: mark.davis@us.ibm.com Email: mark.davis@us.ibm.com
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
skipping to change at page 56, line 27 skipping to change at page 57, line 27
document or to RFCs 1766 and 3066: document or to RFCs 1766 and 3066:
Glenn Adams, Harald Tveit Alvestrand, Tim Berners-Lee, Marc Blanchet, Glenn Adams, Harald Tveit Alvestrand, Tim Berners-Lee, Marc Blanchet,
Nathaniel Borenstein, Karen Broome, Eric Brunner, Sean M. Burke, M.T. Nathaniel Borenstein, Karen Broome, Eric Brunner, Sean M. Burke, M.T.
Carrasco Benitez, Jeremy Carroll, John Clews, Jim Conklin, Peter Carrasco Benitez, Jeremy Carroll, John Clews, Jim Conklin, Peter
Constable, John Cowan, Mark Crispin, Dave Crocker, Martin Duerst, Constable, John Cowan, Mark Crispin, Dave Crocker, Martin Duerst,
Frank Ellerman, Michael Everson, Doug Ewell, Ned Freed, Tim Goodwin, Frank Ellerman, Michael Everson, Doug Ewell, Ned Freed, Tim Goodwin,
Dirk-Willem van Gulik, Marion Gunn, Joel Halpren, Elliotte Rusty Dirk-Willem van Gulik, Marion Gunn, Joel Halpren, Elliotte Rusty
Harold, Paul Hoffman, Scott Hollenbeck, Richard Ishida, Olle Harold, Paul Hoffman, Scott Hollenbeck, Richard Ishida, Olle
Jarnefors, Kent Karlsson, John Klensin, Alain LaBonte, Eric Mader, Jarnefors, Kent Karlsson, John Klensin, Alain LaBonte, Eric Mader,
Ira McDonald, Keith Moore, Chris Newman, Masataka Ohta, Randy Ira McDonald, Keith Moore, Chris Newman, Masataka Ohta, Dylan Pierce,
Presuhn, George Rhoten, Markus Scherer, Keld Jorn Simonsen, Thierry Randy Presuhn, George Rhoten, Markus Scherer, Keld Jorn Simonsen,
Sourbier, Otto Stolz, Tex Texin, Andrea Vine, Rhys Weatherley, Misha Thierry Sourbier, Otto Stolz, Tex Texin, Andrea Vine, Rhys
Wolf, Francois Yergeau and many, many others. Weatherley, Misha Wolf, Francois Yergeau and many, many others.
Very special thanks must go to Harald Tveit Alvestrand, who Very special thanks must go to Harald Tveit Alvestrand, who
originated RFCs 1766 and 3066, and without whom this document would originated RFCs 1766 and 3066, and without whom this document would
not have been possible. Special thanks must go to Michael Everson, not have been possible. Special thanks must go to Michael Everson,
who has served as language tag reviewer for almost the complete who has served as language tag reviewer for almost the complete
period since the publication of RFC 1766. Special thanks to Doug period since the publication of RFC 1766. Special thanks to Doug
Ewell, for his production of the first complete subtag registry, and Ewell, for his production of the first complete subtag registry, and
his work in producing a test parser for verifying language tags. his work in producing a test parser for verifying language tags.
Appendix B. Examples of Language Tags (Informative) Appendix B. Examples of Language Tags (Informative)
skipping to change at page 57, line 44 skipping to change at page 58, line 44
Language-Variant: Language-Variant:
sl-rozaj (Resian dialect of Slovenian sl-rozaj (Resian dialect of Slovenian
sl-nedis (Nadiza dialect of Slovenian) sl-nedis (Nadiza dialect of Slovenian)
Language-Region-Variant: Language-Region-Variant:
de-CH-1901 (German as used in Switzerland using the 1901 variant de-CH-1901 (German as used in Switzerland using the 1901 variant
[othography]) [orthography])
sl-IT-nedis (Slovenian as used in Italy, Nadiza dialect) sl-IT-nedis (Slovenian as used in Italy, Nadiza dialect)
Language-Script-Region-Variant: Language-Script-Region-Variant:
sl-Latn-IT-nedis (Nadiza dialect of Slovenian written using the sl-Latn-IT-nedis (Nadiza dialect of Slovenian written using the
Latin script as used in Italy. Note that this tag is NOT Latin script as used in Italy. Note that this tag is NOT
RECOMMENDED because subtag 'sl' has a Suppress-Script value of RECOMMENDED because subtag 'sl' has a Suppress-Script value of
'Latn') 'Latn')
Language-Region: Language-Region:
de-DE (German for Germany) de-DE (German for Germany)
en-US (English as used in the United States) en-US (English as used in the United States)
es-419 (Spanish appropriate for the Latin America and Caribbean es-419 (Spanish appropriate for the Latin America and Caribbean
region using the UN region code) region using the UN region code)
Private-use subtags: Private use subtags:
de-CH-x-phonebk de-CH-x-phonebk
az-Arab-x-AZE-derbend az-Arab-x-AZE-derbend
Extended language subtags (examples ONLY: extended languages MUST be Extended language subtags (examples ONLY: extended languages MUST be
defined by revision or update to this document): defined by revision or update to this document):
zh-min zh-min
zh-min-nan-Hant-CN zh-min-nan-Hant-CN
Private-use registry values: Private use registry values:
x-whatever (private use using the singleton 'x') x-whatever (private use using the singleton 'x')
qaa-Qaaa-QM-x-southern (all private tags) qaa-Qaaa-QM-x-southern (all private tags)
de-Qaaa (German, with a private script) de-Qaaa (German, with a private script)
sr-Latn-QM (Serbian, Latin-script, private region) sr-Latn-QM (Serbian, Latin-script, private region)
sr-Qaaa-CS (Serbian, private script, for Serbia and Montenegro) sr-Qaaa-CS (Serbian, private script, for Serbia and Montenegro)
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/