idnits 2.17.1 draft-ietf-ltru-4646bis-20.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 16. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 3856. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 3867. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 3874. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 3880. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document obsoletes RFC4646, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year == The document seems to use 'NOT RECOMMENDED' as an RFC 2119 keyword, but does not include the phrase in its RFC 2119 key words list. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (December 10, 2008) is 5616 days in the past. Is this intentional? Checking references for intended status: Best Current Practice ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO15924' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO3166-1' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO639-1' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO639-2' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO639-3' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO639-5' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO646' ** Obsolete normative reference: RFC 2028 (Obsoleted by RFC 9281) ** Obsolete normative reference: RFC 2434 (Obsoleted by RFC 5226) ** Downref: Normative reference to an Informational RFC: RFC 2860 ** Downref: Normative reference to an Informational RFC: RFC 4645 -- Possible downref: Non-RFC (?) normative reference: ref. 'UAX14' -- Obsolete informational reference (is this intentional?): RFC 1766 (Obsoleted by RFC 3066, RFC 3282) -- Obsolete informational reference (is this intentional?): RFC 3066 (Obsoleted by RFC 4646, RFC 4647) -- Obsolete informational reference (is this intentional?): RFC 4646 (Obsoleted by RFC 5646) Summary: 5 errors (**), 0 flaws (~~), 2 warnings (==), 19 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group A. Phillips, Ed. 3 Internet-Draft Lab126 4 Obsoletes: 4646 (if approved) M. Davis, Ed. 5 Intended status: BCP Google 6 Expires: June 13, 2009 December 10, 2008 8 Tags for Identifying Languages 9 draft-ietf-ltru-4646bis-20 11 Status of this Memo 13 By submitting this Internet-Draft, each author represents that any 14 applicable patent or other IPR claims of which he or she is aware 15 have been or will be disclosed, and any of which he or she becomes 16 aware will be disclosed, in accordance with Section 6 of BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as Internet- 21 Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire on June 13, 2009. 36 Abstract 38 This document describes the structure, content, construction, and 39 semantics of language tags for use in cases where it is desirable to 40 indicate the language used in an information object. It also 41 describes how to register values for use in language tags and the 42 creation of user-defined extensions for private interchange. 44 Table of Contents 46 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 47 2. The Language Tag . . . . . . . . . . . . . . . . . . . . . . . 5 48 2.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 5 49 2.1.1. Formatting of Language Tags . . . . . . . . . . . . . 7 50 2.2. Language Subtag Sources and Interpretation . . . . . . . . 8 51 2.2.1. Primary Language Subtag . . . . . . . . . . . . . . . 10 52 2.2.2. Extended Language Subtags . . . . . . . . . . . . . . 12 53 2.2.3. Script Subtag . . . . . . . . . . . . . . . . . . . . 13 54 2.2.4. Region Subtag . . . . . . . . . . . . . . . . . . . . 14 55 2.2.5. Variant Subtags . . . . . . . . . . . . . . . . . . . 16 56 2.2.6. Extension Subtags . . . . . . . . . . . . . . . . . . 17 57 2.2.7. Private Use Subtags . . . . . . . . . . . . . . . . . 18 58 2.2.8. Grandfathered and Redundant Registrations . . . . . . 19 59 2.2.9. Classes of Conformance . . . . . . . . . . . . . . . . 20 60 3. Registry Format and Maintenance . . . . . . . . . . . . . . . 22 61 3.1. Format of the IANA Language Subtag Registry . . . . . . . 22 62 3.1.1. File Format . . . . . . . . . . . . . . . . . . . . . 22 63 3.1.2. Record and Field Definitions . . . . . . . . . . . . . 23 64 3.1.3. Type Field . . . . . . . . . . . . . . . . . . . . . . 26 65 3.1.4. Subtag and Tag Fields . . . . . . . . . . . . . . . . 27 66 3.1.5. Description Field . . . . . . . . . . . . . . . . . . 27 67 3.1.6. Deprecated Field . . . . . . . . . . . . . . . . . . . 29 68 3.1.7. Preferred-Value Field . . . . . . . . . . . . . . . . 29 69 3.1.8. Prefix Field . . . . . . . . . . . . . . . . . . . . . 31 70 3.1.9. Suppress-Script Field . . . . . . . . . . . . . . . . 33 71 3.1.10. Macrolanguage Field . . . . . . . . . . . . . . . . . 33 72 3.1.11. Scope Field . . . . . . . . . . . . . . . . . . . . . 34 73 3.1.12. Comments Field . . . . . . . . . . . . . . . . . . . . 35 74 3.2. Language Subtag Reviewer . . . . . . . . . . . . . . . . . 35 75 3.3. Maintenance of the Registry . . . . . . . . . . . . . . . 36 76 3.4. Stability of IANA Registry Entries . . . . . . . . . . . . 36 77 3.5. Registration Procedure for Subtags . . . . . . . . . . . . 42 78 3.6. Possibilities for Registration . . . . . . . . . . . . . . 47 79 3.7. Extensions and the Extensions Registry . . . . . . . . . . 50 80 3.8. Update of the Language Subtag Registry . . . . . . . . . . 52 81 4. Formation and Processing of Language Tags . . . . . . . . . . 54 82 4.1. Choice of Language Tag . . . . . . . . . . . . . . . . . . 54 83 4.1.1. Tagging Encompassed Languages . . . . . . . . . . . . 58 84 4.1.2. Using Extended Language Subtags . . . . . . . . . . . 59 85 4.2. Meaning of the Language Tag . . . . . . . . . . . . . . . 61 86 4.3. Lists of Languages . . . . . . . . . . . . . . . . . . . . 63 87 4.4. Length Considerations . . . . . . . . . . . . . . . . . . 64 88 4.4.1. Working with Limited Buffer Sizes . . . . . . . . . . 64 89 4.4.2. Truncation of Language Tags . . . . . . . . . . . . . 65 90 4.5. Canonicalization of Language Tags . . . . . . . . . . . . 66 91 4.6. Considerations for Private Use Subtags . . . . . . . . . . 68 92 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 70 93 5.1. Language Subtag Registry . . . . . . . . . . . . . . . . . 70 94 5.2. Extensions Registry . . . . . . . . . . . . . . . . . . . 71 95 6. Security Considerations . . . . . . . . . . . . . . . . . . . 73 96 7. Character Set Considerations . . . . . . . . . . . . . . . . . 74 97 8. Changes from RFC 4646 . . . . . . . . . . . . . . . . . . . . 75 98 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 79 99 9.1. Normative References . . . . . . . . . . . . . . . . . . . 79 100 9.2. Informative References . . . . . . . . . . . . . . . . . . 80 101 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 82 102 Appendix B. Examples of Language Tags (Informative) . . . . . . . 83 103 Appendix C. Examples of Registration Forms . . . . . . . . . . . 86 104 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 88 105 Intellectual Property and Copyright Statements . . . . . . . . . . 89 107 1. Introduction 109 Human beings on our planet have, past and present, used a number of 110 languages. There are many reasons why one would want to identify the 111 language used when presenting or requesting information. 113 The language of an information item or a user's language preferences 114 often need to be identified so that appropriate processing can be 115 applied. For example, the user's language preferences in a Web 116 browser can be used to select Web pages appropriately. Language 117 information can also be used to select among tools (such as 118 dictionaries) to assist in the processing or understanding of content 119 in different languages. Knowledge about the particular language used 120 by some piece of information content might be useful or even required 121 by some types of processing; for example, spell-checking, computer- 122 synthesized speech, Braille transcription, or high-quality print 123 renderings. 125 One means of indicating the language used is by labeling the 126 information content with an identifier or "tag". These tags can also 127 be used to specify the user's preferences when selecting information 128 content, or for labeling additional attributes of content and 129 associated resources. 131 Sometimes language tags are used to indicate additional language 132 attributes of content. For example, indicating specific information 133 about the dialect, writing system, or orthography used in a document 134 or resource may enable the user to obtain information in a form that 135 they can understand, or it can be important in processing or 136 rendering the given content into an appropriate form or style. 138 This document specifies a particular identifier mechanism (the 139 language tag) and a registration function for values to be used to 140 form tags. It also defines a mechanism for private use values and 141 future extension. 143 This document replaces [RFC4646], which replaced [RFC3066] and its 144 predecessor [RFC1766]. For a list of changes in this document, see 145 Section 8. 147 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 148 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 149 document are to be interpreted as described in [RFC2119]. 151 2. The Language Tag 153 Language tags are used to help identify languages, whether spoken, 154 written, signed, or otherwise signaled, for the purpose of 155 communication. This includes constructed and artificial languages, 156 but excludes languages not intended primarily for human 157 communication, such as programming languages. 159 2.1. Syntax 161 A language tag is composed from a sequence of one or more "subtags", 162 each of which refines or narrows the range of language identified by 163 the overall tag. Subtags, in turn, are a sequence of alphanumeric 164 characters (letters and digits), distinguished and separated from 165 other subtags in a tag by a hyphen ("-", ABNF [RFC5234] %x2D). 167 There are different types of subtag, each of which is distinguished 168 by length, position in the tag, and content: each subtag's type can 169 be recognized solely by these features. This makes it possible to 170 extract and assign some semantic information to the subtags, even if 171 the specific subtag values are not recognized. Thus, a language tag 172 processor need not have a list of valid tags or subtags (that is, a 173 copy of some version of the IANA Language Subtag Registry) in order 174 to perform common searching and matching operations. The only 175 exceptions to this ability to infer meaning from subtag structure are 176 the grandfathered tags listed in the productions 'regular' and 177 'irregular' below. These tags were registered under [RFC3066] and 178 are a fixed list that can never change. 180 The syntax of the language tag in ABNF [RFC5234] is: 182 Language-Tag = langtag ; normal language tags 183 / privateuse ; private use tag 184 / grandfathered ; grandfathered tags 186 langtag = language 187 ["-" script] 188 ["-" region] 189 *("-" variant) 190 *("-" extension) 191 ["-" privateuse] 193 language = 2*3ALPHA ; shortest ISO 639 code 194 ["-" extlang] ; sometimes followed by 195 ; extended language subtags 196 / 4ALPHA ; or reserved for future use 197 / 5*8ALPHA ; or registered language subtag 199 extlang = 3ALPHA ; selected ISO 639 codes 200 *2("-" 3ALPHA) ; permanently reserved 202 script = 4ALPHA ; ISO 15924 code 204 region = 2ALPHA ; ISO 3166-1 code 205 / 3DIGIT ; UN M.49 code 207 variant = 5*8alphanum ; registered variants 208 / (DIGIT 3alphanum) 210 extension = singleton 1*("-" (2*8alphanum)) 212 ; Single alphanumerics 213 ; "x" reserved for private use 214 singleton = DIGIT ; 0 - 9 215 / %x41-57 ; A - W 216 / %x59-5A ; Y - Z 217 / %x61-77 ; a - w 218 / %x79-7A ; y - z 220 privateuse = "x" 1*("-" (1*8alphanum)) 222 grandfathered = irregular ; non-redundant tags registered 223 / regular ; during the RFC 3066 era 225 irregular = "en-GB-oed" ; irregular tags do not match 226 / "i-ami" ; the 'langtag' production and 227 / "i-bnn" ; would not otherwise be 228 / "i-default" ; considered 'well-formed' 229 / "i-enochian" ; These tags are all valid, 230 / "i-hak" ; but most are deprecated 231 / "i-klingon" ; in favor of more modern 232 / "i-lux" ; subtags or subtag 233 / "i-mingo" ; combination 234 / "i-navajo" 235 / "i-pwn" 236 / "i-tao" 237 / "i-tay" 238 / "i-tsu" 239 / "sgn-BE-FR" 240 / "sgn-BE-NL" 241 / "sgn-CH-DE" 243 regular = "art-lojban" ; these tags match the 'langtag' 244 / "cel-gaulish" ; production, but their subtags 245 / "no-bok" ; are not extended language 246 / "no-nyn" ; or variant subtags: their meaning 247 / "zh-guoyu" ; is defined by their registration 248 / "zh-hakka" ; and all of these are deprecated 249 / "zh-min" ; in favor of a more modern 250 / "zh-min-nan" ; subtag or sequence of subtags 251 / "zh-xiang" 253 alphanum = (ALPHA / DIGIT) ; letters and numbers 255 Figure 1: Language Tag ABNF 257 For examples of language tags, see Appendix B. 259 All subtags have a maximum length of eight characters and whitespace 260 is not permitted in a language tag. There is a subtlety in the ABNF 261 production 'variant': a variant starting with a digit has a minimum 262 length of four characters, while those starting with a letter have a 263 minimum length of five characters. 265 Although [RFC5234] refers to octets, the language tags described in 266 this document are sequences of characters from the US-ASCII [ISO646] 267 repertoire. Language tags MAY be used in documents and applications 268 that use other encodings, so long as these encompass the relevant 269 part of the US-ASCII repertoire. An example of this would be an XML 270 document that uses the UTF-16LE [RFC2781] encoding of [Unicode]. 272 2.1.1. Formatting of Language Tags 274 At all times, language tags and their subtags, including private-use 275 and extensions, are to be treated as case insensitive: there exist 276 conventions for the capitalization of some of the subtags, but these 277 MUST NOT be taken to carry meaning. 279 Thus, the tag "mn-Cyrl-MN" is not distinct from "MN-cYRL-mn" or "mN- 280 cYrL-Mn" (or any other combination), and each of these variations 281 conveys the same meaning: Mongolian written in the Cyrillic script as 282 used in Mongolia. 284 The ABNF syntax also does not distinguish between upper and 285 lowercase: the uppercase US-ASCII letters in the range 'A' through 286 'Z' are always considered equivalent and mapped directly to their US- 287 ASCII lowercase equivalents in the range 'a' through 'z'. So the tag 288 "I-AMI" is considered equivalent to that value "i-ami" in the 289 'irregular' production. 291 Although case distinctions do not carry meaning in language tags, 292 consistent formatting and presentation of language tags will aid 293 users. The format of subtags in the registry is RECOMMENDED as the 294 form to use in language tags. This format generally corresponds to 295 the common conventions for the various ISO standards from which the 296 subtags are derived. 298 These conventions include: 300 o [ISO639-1] recommends that language codes be written in lowercase 301 ('mn' Mongolian). 303 o [ISO15924] recommends that script codes use lowercase with the 304 initial letter capitalized ('Cyrl' Cyrillic). 306 o [ISO3166-1] recommends that country codes be capitalized ('MN' 307 Mongolia). 309 An implementation can reproduce this format without accessing the 310 registry as follows: All subtags, including extension and private use 311 subtags, use lowercase letters, with two exceptions: two-letter and 312 four-letter subtags that neither appear at the start of the tag nor 313 occur after singletons. Such two-letter subtags are all uppercase 314 (as in the tags "en-CA-x-ca" or "sgn-BE-FR") and four-letter subtags 315 are titlecase (as in the tag "az-Latn-x-latn"). 317 Note: Case folding of ASCII letters in certain locales, unless 318 carefully handled, sometimes produces non-ASCII character values. 319 The Unicode Character Database file "SpecialCasing.txt" defines the 320 specific cases that are known to cause problems with this. In 321 particular, the letter 'i' (U+0069) in Turkish and Azerbaijani is 322 uppercased to U+0130 (LATIN CAPITAL LETTER I WITH DOT ABOVE). 323 Implementers SHOULD specify a locale-neutral casing operation to 324 ensure that case folding of subtags does not produce this value, 325 which is illegal in language tags. For example, if one were to 326 uppercase the region subtag 'in' using Turkish locale rules, the 327 sequence U+0130 U+004E would result instead of the expected 'IN'. 329 2.2. Language Subtag Sources and Interpretation 331 The namespace of language tags and their subtags is administered by 332 the Internet Assigned Numbers Authority (IANA) [RFC2860] according to 333 the rules in Section 5 of this document. The Language Subtag 334 Registry maintained by IANA is the source for valid subtags: other 335 standards referenced in this section provide the source material for 336 that registry. 338 Terminology used in this document: 340 o "Tag" refers to a complete language tag, such as "sr-Latn-RS" or 341 "az-Arab-IR". Examples of tags in this document are enclosed in 342 double-quotes ("en-US"). 344 o "Subtag" refers to a specific section of a tag, delimited by 345 hyphen, such as the subtags 'zh', 'Hant', and 'CN' in the tag "zh- 346 Hant-CN". Examples of subtags in this document are enclosed in 347 single quotes ('Hant'). 349 o "Code" refers to values defined in external standards (and which 350 are used as subtags in this document). For example, 'Hant' is an 351 [ISO15924] script code that was used to define the 'Hant' script 352 subtag for use in a language tag. Examples of codes in this 353 document are enclosed in single quotes ('en', 'Hant'). 355 Language tags are designed so that each subtag type has unique length 356 and content restrictions. These make identification of the subtag's 357 type possible, even if the content of the subtag itself is 358 unrecognized. This allows tags to be parsed and processed without 359 reference to the latest version of the underlying standards or the 360 IANA registry and makes the associated exception handling when 361 parsing tags simpler. 363 Some of the subtags in the IANA registry do not come from an 364 underlying standard. These can only appear in specific positions in 365 a tag: they can only occur as primary language subtags or as variant 366 subtags. 368 Sequences of private use and extension subtags MUST occur at the end 369 of the sequence of subtags and MUST NOT be interspersed with subtags 370 defined elsewhere in this document. These sequences are introduced 371 by single-character subtags, which are reserved as follows: 373 o The single-letter subtag 'x' introduces a sequence of private use 374 subtags. The interpretation of any private use subtags is defined 375 solely by private agreement and is not defined by the rules in 376 this section or in any standard or registry defined in this 377 document. 379 o The single-letter subtag 'i' is used by some grandfathered tags, 380 such as "i-default", where it always appears in the first position 381 and cannot be confused with an extension. 383 o All other single-letter and single-digit subtags are reserved to 384 introduce standardized extension subtag sequences as described in 385 Section 3.7. 387 2.2.1. Primary Language Subtag 389 The primary language subtag is the first subtag in a language tag and 390 cannot be omitted, with two exceptions: 392 o The single-character subtag 'x' as the primary subtag indicates 393 that the language tag consists solely of subtags whose meaning is 394 defined by private agreement. For example, in the tag "x-fr-CH", 395 the subtags 'fr' and 'CH' do not represent the French language or 396 the country of Switzerland (or any other value in the IANA 397 registry) unless there is a private agreement in place to do so. 398 See Section 4.6. 400 o The single-character subtag 'i' is used by some grandfathered tags 401 (see Section 2.2.8) such as "i-klingon" and "i-bnn". (Other 402 grandfathered tags have a primary language subtag in their first 403 position.) 405 The following rules apply to the primary language subtag: 407 1. Two-character primary language subtags were defined in the IANA 408 registry according to the assignments found in the standard "ISO 409 639-1:2002, Codes for the representation of names of languages -- 410 Part 1: Alpha-2 code" [ISO639-1], or using assignments 411 subsequently made by the ISO 639-1 registration authority (RA) or 412 governing standardization bodies. 414 2. Three-character primary language subtags in the IANA registry 415 were defined according to the assignments found in one of these 416 additional ISO 639 parts or assignments subsequently made by the 417 relevant ISO 639 registration authorities or governing 418 standardization bodies: 420 A. "ISO 639-2:1998 - Codes for the representation of names of 421 languages -- Part 2: Alpha-3 code - edition 1" [ISO639-2] 423 B. "ISO 639-3:2007 - Codes for the representation of names of 424 languages -- Part 3: Alpha-3 code for comprehensive coverage 425 of languages" [ISO639-3] 427 C. "ISO 639-5:2008 - Codes for the representation of names of 428 languages -- Part 5: Alpha-3 code for language families and 429 groups" [ISO639-5] 431 3. The subtags in the range 'qaa' through 'qtz' are reserved for 432 private use in language tags. These subtags correspond to codes 433 reserved by ISO 639-2 for private use. These codes MAY be used 434 for non-registered primary language subtags (instead of using 435 private use subtags following 'x-'). Please refer to Section 4.6 436 for more information on private use subtags. 438 4. Four-character language subtags are reserved for possible future 439 standardization. 441 5. Any language subtags of 5 to 8 characters in length in the IANA 442 registry were defined via the registration process in Section 3.5 443 and MAY be used to form the primary language subtag. An example 444 of what such a registration might include: one of the 445 grandfathered IANA registrations is "i-enochian". The subtag 446 'enochian' could be registered in the IANA registry as a primary 447 language subtag (assuming that ISO 639 does not register this 448 language first), making tags such as "enochian-AQ" and "enochian- 449 Latn" valid. 451 At the time this document was created, there were no examples of 452 this kind of subtag and future registrations of this type are 453 discouraged: primary languages are strongly RECOMMENDED for 454 registration with ISO 639, and proposals rejected by ISO 639/ 455 RA-JAC will be closely scrutinized before they are registered 456 with IANA. 458 6. Other values MUST NOT be assigned to the primary subtag except by 459 revision or update of this document. 461 When languages have both an ISO 639-1 two-character code and a three 462 character code (assigned by ISO 639-2, ISO 639-3, or ISO 639-5), only 463 the ISO 639-1 two-character code is defined in the IANA registry. 465 When languages that have no ISO 639-1 two-character code and for 466 which the ISO 639-2/T (Terminology) code and the ISO 639-2/B 467 (Bibliographic) codes differ, only the Terminology code is defined in 468 the IANA registry. At the time this document was created, all 469 languages that had both kinds of three-character code were also 470 assigned a two-character code; it is expected that future assignments 471 of this nature will not occur. 473 In order to avoid instability in the canonical form of tags, if a 474 two-character code is added to ISO 639-1 for a language for which a 475 three-character code was already included in either ISO 639-2 or ISO 476 639-3, the two-character code MUST NOT be registered. See 477 Section 3.4. 479 For example, if some content were tagged with 'haw' (Hawaiian), which 480 currently has no two-character code, the tag would not need to be 481 changed if ISO 639-1 were to assign a two-character code to the 482 Hawaiian language at a later date. 484 To avoid these problems with versioning and subtag choice (as 485 experienced during the transition between RFC 1766 and RFC 3066), as 486 well as to ensure the canonical nature of subtags defined by this 487 document, the ISO 639 Registration Authority Joint Advisory Committee 488 (ISO 639/RA-JAC) has included the following statement in 489 [iso639.prin]: 491 "A language code already in ISO 639-2 at the point of freezing ISO 492 639-1 shall not later be added to ISO 639-1. This is to ensure 493 consistency in usage over time, since users are directed in 494 Internet applications to employ the alpha-3 code when an alpha-2 495 code for that language is not available." 497 2.2.2. Extended Language Subtags 499 Extended language subtags are used to identify certain specially- 500 selected languages that, for various historical and compatibility 501 reasons, are closely identified with or tagged using an existing 502 primary language subtag. Extended language subtags are always used 503 with their enclosing primary language subtag (indicated with a 504 'Prefix' field in the registry) when used to form the language tag. 505 All languages that have an extended language subtag in the registry 506 also have an identical primary language subtag record in the 507 registry. This primary language subtag is RECOMMENDED for forming 508 the language tag. The following rules apply to the extended language 509 subtags: 511 1. Extended language subtags consist solely of three-letter subtags. 512 All extended language subtag records defined in the registry were 513 defined according to the assignments found in [ISO639-3]. 514 Language collections and groupings, such as defined in [ISO639-5] 515 are specifically excluded from being extended language subtags. 517 2. Extended language subtag records MUST include exactly one 518 'Prefix' field indicating an appropriate subtag or sequence of 519 subtags for that extended language subtag. 521 3. Extended language subtag records MUST include a 'Preferred- 522 Value'. The 'Preferred-Value' and 'Subtag' fields MUST be 523 identical. 525 4. Although the ABNF production 'extlang' permits up to three 526 extended language tags in the language tag, extended language 527 subtags MUST NOT include another extended language subtag in 528 their Prefix. That is, the second and third extended language 529 subtag positions in a language tag are permanently reserved and 530 tags that include subtags in that position are invalid. 532 For example, the macrolanguage Chinese ('zh') encompasses a number of 533 languages. For compatibility reasons, each of these languages has 534 both a primary and extended language subtag in the registry. A few 535 selected examples of these include Gan Chinese ('gan'), Cantonese 536 Chinese ('yue') and Mandarin Chinese ('cmn'). Each is encompassed by 537 the macrolanguage 'zh' (Chinese). Therefore, they each have the 538 prefix "zh" in their registry records. Thus Gan Chinese is 539 represented with tags beginning "zh-gan" or "gan"; Cantonese with 540 tags beginning either "yue" or "zh-yue"; and Mandarin Chinese with 541 "zh-cmn" or "cmn". The language subtag 'zh' can still be used 542 without an extended language subtag to label a resource as some 543 unspecified variety of Chinese, while the primary language subtag 544 ('gan', 'yue', 'cmn') is preferred to using the extended language 545 form ("zh-gan", "zh-yue", "zh-cmn"). 547 2.2.3. Script Subtag 549 Script subtags are used to indicate the script or writing system 550 variations that distinguish the written forms of a language or its 551 dialects. The following rules apply to the script subtags: 553 1. Script subtags MUST follow any primary and extended language 554 subtags and MUST precede any other type of subtag. 556 2. Script subtags consist of four letters and were defined according 557 to [ISO15924]--"Codes for the representation of the names of 558 scripts": alpha-4 script codes, or subsequently assigned by the 559 ISO 15924 registration authority or governing standardization 560 bodies, denoting the script or writing system used in conjunction 561 with this language. Only codes assigned by ISO 15924 will be 562 considered for registration. 564 3. The script subtags 'Qaaa' through 'Qabx' are reserved for private 565 use in language tags. These subtags correspond to codes reserved 566 by ISO 15924 for private use. These codes MAY be used for non- 567 registered script values. Please refer to Section 4.6 for more 568 information on private use subtags. 570 4. There MUST be at most one script subtag in a language tag, and 571 the script subtag SHOULD be omitted when it adds no 572 distinguishing value to the tag or when the primary or extended 573 language subtag's record in the subtag registry includes a 574 'Suppress-Script' field listing the applicable script subtag. 576 For example: "sr-Latn" represents Serbian written using the Latin 577 script. 579 2.2.4. Region Subtag 581 Region subtags are used to indicate linguistic variations associated 582 with or appropriate to a specific country, territory, or region. 583 Typically, a region subtag is used to indicate variations such as 584 regional dialects or usage, or region-specific spelling conventions. 585 It can also be used to indicate that content is expressed in a way 586 that is appropriate for use throughout a region, for instance, 587 Spanish content tailored to be useful throughout Latin America. 589 The following rules apply to the region subtags: 591 1. Region subtags MUST follow any primary language, extended 592 language, or script subtags and MUST precede any other type of 593 subtag. 595 2. Two-letter region subtags were defined according to the 596 assignments found in [ISO3166-1] ("Codes for the representation 597 of names of countries and their subdivisions -- Part 1: Country 598 codes") using the list of alpha-2 country codes, or using 599 assignments subsequently made by the ISO 3166-1 maintenance 600 agency or governing standardization bodies. In addition, the 601 codes that are "exceptionally reserved" (as opposed to 602 "assigned") in ISO 3166-1 were also defined in the registry, with 603 the exception of 'UK', which is an exact synonym for the assigned 604 code 'GB'. 606 3. The region subtags 'AA', 'QM'-'QZ', 'XA'-'XZ', and 'ZZ' are 607 reserved for private use in language tags. These subtags 608 correspond to codes reserved by ISO 3166 for private use. These 609 codes MAY be used for private use region subtags (instead of 610 using a private use subtag sequence). Please refer to 611 Section 4.6 for more information on private use subtags. 613 4. Three-character region subtags consist solely of digit (number) 614 characters and were defined according to the assignments found in 615 UN Standard Country or Area Codes for Statistical Use [UN_M.49] 616 or assignments subsequently made by the governing standards body. 617 Not all of the UN M.49 codes are defined in the IANA registry. 618 The following rules define which codes are entered into the 619 registry as valid subtags: 621 A. UN numeric codes assigned to 'macro-geographical 622 (continental)' or sub-regions MUST be registered in the 623 registry. These codes are not associated with an assigned 624 ISO 3166-1 alpha-2 code and represent supra-national areas, 625 usually covering more than one nation, state, province, or 626 territory. 628 B. UN numeric codes for 'economic groupings' or 'other 629 groupings' MUST NOT be registered in the IANA registry and 630 MUST NOT be used to form language tags. 632 C. When ISO 3166-1 reassigns a code formerly used for one 633 country or area to another country or area and that code 634 already is present in the registry, the UN numeric code for 635 that country or area MUST be registered in the registry as 636 described in Section 3.4 and MUST be used to form language 637 tags that represent the country or region for which it is 638 defined (rather than the recycled ISO 3166-1 code). 640 D. UN numeric codes for countries or areas for which there is an 641 associated ISO 3166-1 alpha-2 code in the registry MUST NOT 642 be entered into the registry and MUST NOT be used to form 643 language tags. Note that the ISO 3166-based subtag in the 644 registry MUST actually be associated with the UN M.49 code in 645 question. 647 E. UN numeric codes and ISO 3166-1 alpha-2 codes for countries 648 or areas listed as eligible for registration in Section 4 of 649 [RFC4645] but not presently registered MAY be entered into 650 the IANA registry via the process described in Section 3.5. 651 Once registered, these codes MAY be used to form language 652 tags. 654 F. All other UN numeric codes for countries or areas that do not 655 have an associated ISO 3166-1 alpha-2 code MUST NOT be 656 entered into the registry and MUST NOT be used to form 657 language tags. For more information about these codes, see 658 Section 3.4. 660 5. The alphanumeric codes in Appendix X of the UN document MUST NOT 661 be entered into the registry and MUST NOT be used to form 662 language tags. (At the time this document was created, these 663 values matched the ISO 3166-1 alpha-2 codes.) 665 6. There MUST be at most one region subtag in a language tag and the 666 region subtag MAY be omitted, as when it adds no distinguishing 667 value to the tag. 669 For example: 671 "de-AT" represents German ('de') as used in Austria ('AT'). 673 "sr-Latn-RS" represents Serbian ('sr') written using Latin script 674 ('Latn') as used in Serbia ('RS'). 676 "es-419" represents Spanish ('es') appropriate to the UN-defined 677 Latin America and Caribbean region ('419'). 679 2.2.5. Variant Subtags 681 Variant subtags are used to indicate additional, well-recognized 682 variations that define a language or its dialects that are not 683 covered by other available subtags. The following rules apply to the 684 variant subtags: 686 1. Variant subtags MUST follow any primary language, extended 687 language, script, or region subtags, and MUST precede any 688 extension or private use subtag sequences. 690 2. Variant subtags, as a collection, are not associated with any 691 particular external standard. The meaning of variant subtags in 692 the registry is defined in the course of the registration process 693 defined in Section 3.5. Note that any particular variant subtag 694 might be associated with some external standard. However, 695 association with a standard is not required for registration. 697 3. More than one variant MAY be used to form the language tag. 699 4. Variant subtags MUST be registered with IANA according to the 700 rules in Section 3.5 of this document before being used to form 701 language tags. In order to distinguish variants from other types 702 of subtags, registrations MUST meet the following length and 703 content restrictions: 705 1. Variant subtags that begin with a letter (a-z, A-Z) MUST be 706 at least five characters long. 708 2. Variant subtags that begin with a digit (0-9) MUST be at 709 least four characters long. 711 5. The same variant subtag MUST NOT be used more than once within a 712 language tag. 714 * For example, the tag "de-DE-1901-1901" is not valid. 716 Variant subtag records in the language subtag registry MAY include 717 one or more 'Prefix' (Section 3.1.8) fields. Each 'Prefix' indicates 718 a suitable sequence of subtags for forming (with other subtags, as 719 appropriate) a language tag when using the variant. 721 Most variants that share a prefix are mutually exclusive. For 722 example, the German orthographic variations '1996' and '1901' SHOULD 723 NOT be used in the same tag, as they represent the dates of different 724 spelling reforms. A variant that can meaningfully be used in 725 combination with another variant SHOULD include a 'Prefix' field in 726 its registry record that lists that other variant. For example, if 727 another German variant 'example' were created that made sense to use 728 with '1996', then 'example' should include two Prefix fields: "de" 729 and "de-1996". 731 For example: 733 "sl-nedis" represents the Natisone or Nadiza dialect of Slovenian. 735 "de-CH-1996" represents German as used in Switzerland and as 736 written using the spelling reform beginning in the year 1996 C.E. 738 2.2.6. Extension Subtags 740 Extensions provide a mechanism for extending language tags for use in 741 various applications. They are intended to identify information 742 which is commonly used in association with languages or language 743 tags, but which is not part of language identification. See 744 Section 3.7. The following rules apply to extensions: 746 1. An extension MUST follow at least a primary language subtag. 747 That is, a language tag cannot begin with an extension. 748 Extensions extend language tags, they do not override or replace 749 them. For example, "a-value" is not a well-formed language tag, 750 while "de-a-value" is. Note that extensions cannot be used in 751 tags that are entirely private use (that is, tags starting with 752 "x-"). 754 2. Extension subtags are separated from the other subtags defined in 755 this document by a single-character subtag (called a 756 "singleton"). The singleton MUST be one allocated to a 757 registration authority via the mechanism described in Section 3.7 758 and MUST NOT be the letter 'x', which is reserved for private use 759 subtag sequences. 761 3. Each singleton subtag MUST appear at most one time in each tag 762 (other than as a private use subtag). That is, singleton subtags 763 MUST NOT be repeated. For example, the tag "en-a-bbb-a-ccc" is 764 invalid because the subtag 'a' appears twice. Note that the tag 765 "en-a-bbb-x-a-ccc" is valid because the second appearance of the 766 singleton 'a' is in a private use sequence. 768 4. Extension subtags MUST meet whatever requirements are set by the 769 document that defines their singleton prefix and whatever 770 requirements are provided by the maintaining authority. Note 771 that there might not be a registry of these subtags and 772 validating processors are not required to validate extensions. 774 5. Each extension subtag MUST be from two to eight characters long 775 and consist solely of letters or digits, with each subtag 776 separated by a single '-'. Case distinctions are ignored in 777 extensions (as with any language subtag) and normalized subtags 778 of this type are expected to be in lowercase. 780 6. Each singleton MUST be followed by at least one extension subtag. 781 For example, the tag "tlh-a-b-foo" is invalid because the first 782 singleton 'a' is followed immediately by another singleton 'b'. 784 7. Extension subtags MUST follow all primary language, extended 785 language, script, region, and variant subtags in a tag and MUST 786 precede any private-use subtag sequences. 788 8. All subtags following the singleton and before another singleton 789 are part of the extension. Example: In the tag "fr-a-Latn", the 790 subtag 'Latn' does not represent the script subtag 'Latn' defined 791 in the IANA Language Subtag Registry. Its meaning is defined by 792 the extension 'a'. 794 9. In the event that more than one extension appears in a single 795 tag, the tag SHOULD be canonicalized as described in Section 4.5, 796 by ordering the various extension sequences into case-insensitive 797 ASCII order. 799 For example, if an extension were defined for the singleton 'r' and 800 it defined the subtags shown, then the following tag would be a valid 801 example: "en-Latn-GB-boont-r-extended-sequence-x-private" 803 2.2.7. Private Use Subtags 805 Private use subtags are used to indicate distinctions in language 806 important in a given context by private agreement. The following 807 rules apply to private use subtags: 809 1. Private use subtags are separated from the other subtags defined 810 in this document by the reserved single-character subtag 'x'. 812 2. Private use subtags MUST conform to the format and content 813 constraints defined in the ABNF for all subtags, that is, they 814 MUST consist solely of letters and digits and not exceed eight 815 characters in length. 817 3. Private use subtags MUST follow all primary language, extended 818 language, script, region, variant, and extension subtags in the 819 tag. Another way of saying this is that all subtags following 820 the singleton 'x' MUST be considered private use. Example: The 821 subtag 'US' in the tag "en-x-US" is a private use subtag. 823 4. A tag MAY consist entirely of private use subtags. 825 5. No source is defined for private use subtags. Use of private use 826 subtags is by private agreement only. 828 6. Private use subtags are NOT RECOMMENDED where alternatives exist 829 or for general interchange. See Section 4.6 for more information 830 on private use subtag choice. 832 For example, suppose a group of scholars are studying some texts in 833 medieval Greek. They might agree to use some collection of private- 834 use subtags to identify different styles of writing in the texts. 835 For example, they might use 'el-x-koine' for documents in the 836 "common" style while using 'el-x-attic' for other documents that 837 mimic the Attic style. These subtags would not be recognized by 838 outside processes or systems, but might be useful in categorizing 839 various texts for study by those in the group. 841 Do not confuse private-use subtags with what this document refers to 842 as "subtags reserved for private use". The latter are subtags such 843 as 'qaa', 'Qaaa', or 'AA' that are designated as codes for private 844 use by one of the underlying ISO standards. Although their purpose 845 is very similar, subtags reserved for private use are represented by 846 records of the appropriate type in the registry and, thus, are 847 syntactically "language", "script", or "region" subtags, rather than 848 "private-use" subtags. 850 2.2.8. Grandfathered and Redundant Registrations 852 Prior to RFC 4646, whole language tags were registered according to 853 the rules in RFC 1766 and/or RFC 3066. All of these registered tags 854 remain valid as language tags. 856 Many of these registered tags were made redundant by the advent of 857 either RFC 4646 or this document. A redundant tag is a grandfathered 858 registration whose individual subtags appear with the same semantic 859 meaning in the registry. For example, the tag "zh-Hant" (Traditional 860 Chinese) can now be composed from the subtags 'zh' (Chinese) and 861 'Hant' (Han script traditional variant). These redundant tags are 862 maintained in the registry as records of type "redundant", mostly as 863 a matter of historical curiosity. 865 The remainder of the previously registered tags are "grandfathered". 866 These tags are classified into two groups: 'regular' and 'irregular'. 868 Grandfathered tags that (appear to) match the 'langtag' production in 869 Figure 1 are considered 'regular' grandfathered tags. These tags 870 either contain subtags that do not individually appear in the 871 registry, or their subtags appear but with a different semantic 872 meaning: each tag, in its entirety, represents a language or 873 collection of languages. 875 Grandfathered tags that do not match the 'langtag' production in the 876 ABNF and would otherwise be invalid are considered 'irregular' 877 grandfathered tags. With the exception of "en-GB-oed", which is a 878 variant of "en-GB", each of them, in its entirety, represents a 879 language. 881 Many of the grandfathered tags have been superseded by the subsequent 882 addition of new subtags: each superseded record contains a Preferred- 883 Value field that ought to be used to form language tags representing 884 that value. For example, the tag "art-lojban" is superseded by the 885 primary language subtag 'jbo'. 887 2.2.9. Classes of Conformance 889 Implementations sometimes need to describe their capabilities with 890 regard to the rules and practices described in this document. Tags 891 can be checked or verified in a number of ways, but two particular 892 classes of tag conformance are formally defined here. 894 A tag is considered "well-formed" if it conforms to the ABNF 895 (Section 2.1). Language tags may be well-formed in terms of syntax 896 but not valid in terms of content. However, many operations 897 involving language tags work well without knowing anything about the 898 meaning or validity of the subtags. 900 A tag is considered "valid" if it satisfies these conditions: 902 o The tag is well-formed. 904 o The tag is either in the list of grandfathered tags or all of its 905 primary language, extended language, script, region, and variant 906 subtags appear in the IANA language subtag registry as of the 907 particular registry date. 909 o There are no duplicate variant subtags. 911 o There are no duplicate singleton (extension) subtags. 913 Note that a tag's validity depends on the date of the registry used 914 to validate the tag. A more recent copy of the registry might 915 contain a subtag that an older version does not. 917 A tag is considered "valid" for a given extension (Section 3.7) (as 918 of a particular version, revision, and date) if it meets the criteria 919 for "valid" above and also satisfies this condition: 921 Each subtag used in the extension part of the tag is valid 922 according to the extension. 924 Older specifications or language tag implementations sometimes 925 reference [RFC3066]. A wider array of tags was considered 'well- 926 formed' under that document. Any tags that were valid for use under 927 RFC 3066 are both 'well-formed' and 'valid' under this document's 928 syntax; only invalid or illegal tags were well-formed by the early 929 definition but no longer are. The language tag syntax under RFC 3066 930 was: 932 obs-language-tag = primary-subtag *( "-" subtag ) 933 primary-subtag = 1*8ALPHA 934 subtag = 1*8(ALPHA / DIGIT) 936 Figure 2: RFC 3066 Language Tag Syntax 938 Subtags designated for private use as well as private-use sequences 939 introduced by the 'x' subtag are available for cases in which no 940 assigned subtags are available and registration is not a suitable 941 option. For example, one might use a tag such as "no-QQ", where 'QQ' 942 is one of a range of private-use ISO 3166-1 codes to indicate an 943 otherwise-undefined region. Users MUST NOT assign language tags that 944 use subtags that do not appear in the registry other than in private- 945 use sequences (such the subtag 'personal' in the tag "en-x- 946 personal"). Besides not being 'valid', the user also risks collision 947 with a future possible assignment or registrations. 949 Note well: although the 'Language-Tag' production appearing in this 950 document is functionally equivalent to the one in [RFC4646], it has 951 been changed to prevent certain errors in well-formedness arising 952 from the old 'grandfathered' production. This version of the ABNF is 953 RECOMMENDED as a replacement for the older version. 955 3. Registry Format and Maintenance 957 The IANA Language Subtag Registry ("the registry") contains a 958 comprehensive list of all of the subtags valid in language tags. 959 This allows implementers a straightforward and reliable way to 960 validate language tags. The registry will be maintained so that, 961 except for extension subtags, it is possible to validate all of the 962 subtags that appear in a language tag under the provisions of this 963 document or its revisions or successors. In addition, the meaning of 964 the various subtags will be unambiguous and stable over time. (The 965 meaning of private use subtags, of course, is not defined by the 966 registry.) 968 This section defines the registry along with the maintenance and 969 update procedures associated with it, as well as a registry for 970 extensions to language tags (Section 3.7). 972 3.1. Format of the IANA Language Subtag Registry 974 The IANA Language Subtag Registry is a machine-readable file in the 975 format described in this section, plus copies of the registration 976 forms approved in accordance with the process described in 977 Section 3.5. 979 The existing registration forms for grandfathered and redundant tags 980 taken from RFC 3066 have been maintained as part of the obsolete RFC 981 3066 registry. The subtags added to the registry by either [RFC4645] 982 or [draft-4645bis] do not have separate registration forms (so no 983 forms are archived for these additions). 985 3.1.1. File Format 987 The registry is a [Unicode] text file, using the UTF-8 [RFC3629] 988 character encoding, and consists of a series of records stored in a 989 format based on "record-jar" (described in [record-jar]). Each 990 record, in turn, consists of a series of fields that describe the 991 various subtags and tags. 993 Each field can be considered a single, logical line of characters. 994 Each field contains a 'field-name' and a 'field-body'. These are 995 separated by a 'field-separator'. The field-separator is a COLON 996 character (%x3A) plus any surrounding whitespace. Each field is 997 terminated by the newline sequence CRLF. The text in each field MUST 998 be in Unicode Normalization Form C (NFC). 1000 A collection of fields forms a 'record'. Records are separated by 1001 lines containing only the sequence "%%" (%x25.25). 1003 Although fields are logically a single line of text, each line of 1004 text in the file format is limited to 72 bytes in length. To 1005 accommodate this, the field-body can be split into a multiple-line 1006 representation; this is called "folding". Folding is done according 1007 to customary conventions for line-wrapping. This is typically on 1008 whitespace boundaries, but can occur between other characters when 1009 the value does not include spaces, such as when a language does not 1010 use whitespace between words. In any event, there MUST NOT be breaks 1011 inside a multibyte UTF-8 sequence nor in the middle of a combining 1012 character sequence. For more information, see [UAX14]. 1014 Although the file format uses the UTF-8 encoding, fields are 1015 restricted to the printable characters from the US-ASCII [ISO646] 1016 repertoire unless otherwise indicated in the description of a 1017 specific field-name (Section 3.1.2). 1019 The format of the registry is described by the following ABNF (per 1020 [RFC5234]): 1022 registry = record *("%%" CRLF record) 1023 record = 1*field 1024 field = ( field-name field-sep field-body CRLF ) 1025 field-name = (ALPHA / DIGIT) [*(ALPHA / DIGIT / "-") (ALPHA / DIGIT)] 1026 field-sep = *SP ":" *SP 1027 field-body = *([[*SP CRLF] 1*SP] 1*CHARS) 1028 CHARS = (%x21-10FFFF) ; Unicode code points 1030 Figure 3: Registry Format ABNF 1032 The sequence '..' (%x2E.2E) in a field-body denotes a range of 1033 values. Such a range represents all subtags of the same length that 1034 are in alphabetic or numeric order within that range, including the 1035 values explicitly mentioned. For example 'a..c' denotes the values 1036 'a', 'b', and 'c' and '11..13' denotes the values '11', '12', and 1037 '13'. 1039 All fields whose field-body contains a date value use the "full-date" 1040 format specified in [RFC3339]. For example: "2004-06-28" represents 1041 June 28, 2004, in the Gregorian calendar. 1043 3.1.2. Record and Field Definitions 1045 There are three types of records in the registry: "File-Date", 1046 "Subtag", and "Tag". 1048 The first record in the registry is always the "File-Date" record. 1049 This record occurs only once in the file and contains a single field 1050 whose field-name is "File-Date". The field-body of this record 1051 contains the last modification date of this copy of the registry, 1052 making it possible to compare different versions of the registry. 1053 The registry on the IANA website is the most current. Versions with 1054 an older date than that one are not up-to-date. 1056 File-Date: 2004-06-28 1057 %% 1059 Figure 4: Example of the File-Date Record 1061 Subsequent records contain multiple fields and represent information 1062 about either subtags or tags. Both types of record have identical 1063 structure, except that "Subtag" records contain a field with a field- 1064 name of "Subtag", while, unsurprisingly, "Tag" records contain a 1065 field with a field-name of "Tag". Field-names MUST occur no more 1066 than once per record, with the exception of the 'Description', 1067 'Comments', and sometimes the 'Prefix' field. 1069 Each record MUST contain at least one of each of the following 1070 fields: 1072 o 'Type' 1074 * Type's field-body MUST consist of one of the following strings: 1075 "language", "extlang", "script", "region", "variant", 1076 "grandfathered", and "redundant", and denotes the type of tag 1077 or subtag. 1079 o Either 'Subtag' or 'Tag' 1081 * Subtag's field-body contains the subtag being defined. This 1082 field MUST appear in all records whose 'Type' has one of these 1083 values: "language", "extlang", "script", "region", or 1084 "variant". 1086 * Tag's field-body contains a complete language tag. This field 1087 MUST appear in all records whose 'Type' has one of these 1088 values: "grandfathered" or "redundant". If the 'Type' is 1089 "grandfathered", then the 'Tag' field-body will be one of the 1090 tags listed in either the 'regular' or 'irregular' production 1091 in found in Section 2.1. 1093 o Description 1095 * Description's field-body contains a non-normative description 1096 of the subtag or tag. 1098 o Added 1100 * Added's field-body contains the date the record was registered 1101 or, in the case of grandfathered or redundant tags, the date 1102 the corresponding tag was registered under the rules of 1103 [RFC1766] or [RFC3066]. 1105 Each record MAY also contain the following fields: 1107 o Deprecated 1109 * Deprecated's field-body contains the date the record was 1110 deprecated. In some cases this value is earlier than that of 1111 the 'Added' field in the same record. That is, the date of 1112 deprecation preceded the addition of the record to the 1113 registry. 1115 o Preferred-Value 1117 * Preferred-Value's field body contains a canonical mapping from 1118 this record's value to a modern equivalent that is preferred in 1119 its place. Depending on the value of the 'Type' field, this 1120 value can take different forms: 1122 + For fields of type 'language', 'Preferred-Value' contains 1123 the primary language subtag that is preferred when forming 1124 the language tag. 1126 + For fields of type 'script', 'region', or 'variant', 1127 'Preferred-Value' contains the subtag of the same type that 1128 is preferred for forming the language tag. 1130 + For fields of type 'extlang', 'grandfathered', or 1131 'redundant', 'Preferred-Value' contains an "extended 1132 language range" ([RFC4647]) that is preferred for forming 1133 the language tag. That is, each of the subtags that appears 1134 in the value MUST appear in the replacement tag; additional 1135 fields can be included in a language tag as described 1136 elsewhere in this document. For example, the replacement 1137 for the grandfathered tag "zh-min-nan" (Min Nan Chinese) is 1138 "nan", which can be used as the basis for tags such as "nan- 1139 Hant" or "nan-TW" (note that the extended language subtag 1140 form such as "zh-nan-Hant" or "zh-nan-TW" can also be used). 1142 o Prefix 1144 * Prefix's field-body contains a valid language tag that is 1145 RECOMMENDED as one possible prefix to this record's subtag. 1147 This field MAY appear in records whose 'Type' field-body is 1148 either 'extlang' or 'variant' (it MUST NOT appear in any other 1149 record type). 1151 o Suppress-Script 1153 * Suppress-Script's field-body contains a script subtag that 1154 SHOULD NOT be used to form language tags with the associated 1155 primary or extended language subtag. This field MUST appear 1156 only in records whose 'Type' field-body is "language" or 1157 "extlang". See Section 4.1. 1159 o Macrolanguage 1161 * Macrolanguage's field-body contains a primary language subtag 1162 defined by ISO 639 as the "macrolanguage" that encompasses this 1163 language subtag. This field MUST appear only in records whose 1164 'Type' field-body is either "language" or "extlang". 1166 o Scope 1168 * Scope's field-body contains information about a primary or 1169 extended language subtag indicating the type of language code 1170 according to ISO 639. The values permitted in this field are 1171 "macrolanguage", "collection", "special" and "private-use". 1172 This field only appears in records whose 'Type' field-body is 1173 either "language" or "extlang". When this field is omitted, 1174 the language is an individual language. 1176 o Comments 1178 * Comments's field-body contains additional information about the 1179 subtag, as deemed appropriate for understanding the registry 1180 and implementing language tags using the subtag or tag. 1182 Future versions of this document might add additional fields to the 1183 registry; implementations SHOULD ignore fields found in the registry 1184 that are not defined in this document. 1186 3.1.3. Type Field 1188 The field 'Type' contains the string identifying the record type it 1189 appears in. Values for the 'Type' field-body are: "language" 1190 (Section 2.2.1); "extlang" (Section 2.2.2); "script" (Section 2.2.3); 1191 "region" (Section 2.2.4); "variant" (Section 2.2.5); "grandfathered" 1192 or "redundant" (Section 2.2.8). 1194 3.1.4. Subtag and Tag Fields 1196 The field 'Subtag' contains the subtag defined in the record. The 1197 field 'Tag' appears in records whose 'Type' is either 'grandfathered' 1198 or 'redundant' and contains a tag registered under [RFC3066]. 1200 The 'Subtag' field-body MUST follow the casing conventions described 1201 in Section 2.1.1. All subtags use lowercase letters in the field- 1202 body, with two exceptions: 1204 Subtags whose 'Type' field is 'script' (in other words, subtags 1205 defined by ISO 15924) MUST use titlecase. 1207 Subtags whose 'Type' field is 'region' (in other words, the non- 1208 numeric region subtags defined by ISO 3166-1) MUST use all 1209 uppercase. 1211 The 'Tag' field-body MUST be formatted according to the rules 1212 described in Section 2.1.1. 1214 3.1.5. Description Field 1216 The field 'Description' contains a description of the tag or subtag 1217 in the record. The 'Description' field MAY appear more than once per 1218 record. The 'Description' field MAY include the full range of 1219 Unicode characters. At least one of the 'Description' fields MUST be 1220 written or transcribed into the Latin script; additional 1221 'Description' fields MAY be in any script or language. 1223 The 'Description' field is used for identification purposes. 1224 Descriptions SHOULD contain all and only that information necessary 1225 to distinguish one subtag from others that it might be confused with. 1226 They are not intended to provide general background information, nor 1227 to provide all possible alternate names or designations. 1228 'Description' fields don't necessarily represent the actual native 1229 name of the item in the record, nor are any of the descriptions 1230 guaranteed to be in any particular language (such as English or 1231 French, for example). 1233 Descriptions in the registry that correspond to ISO 639, ISO 15924, 1234 ISO 3166-1, or UN M.49 codes are intended only to indicate the 1235 meaning of that identifier as defined in the source standard at the 1236 time it was added to the registry or as subsequently modified, within 1237 the bounds of the stability rules (Section 3.4), via subsequent 1238 registration. The 'Description' does not replace the content of the 1239 source standard itself. 'Description' fields are not intended to be 1240 the localized English names for the subtags. Localization or 1241 translation of language tag and subtag descriptions is out of scope 1242 of this document. 1244 For subtags taken from a source standard (such as ISO 639 or ISO 1245 15924), the 'Description' fields in the record are also initially 1246 taken from that source standard. Multiple descriptions in the source 1247 standard are split into separate 'Description' fields. The source 1248 standard's descriptions MAY be edited or modified, either prior to 1249 insertion or via the registration process, and additional or 1250 extraneous descriptions omitted or removed. Each 'Description' field 1251 MUST be unique within the record in which it appears and formatting 1252 variations of the same description SHOULD NOT occur in that specific 1253 record. For example, while the ISO 639-1 code 'fy' has both the 1254 description "Western Frisian" and the description "Frisian, Western" 1255 in that standard, only one of these descriptions appears in the 1256 registry. 1258 To help ensure that users do not become confused about which subtag 1259 to use, 'Description' fields assigned to a record of any specific 1260 type ('language', 'extlang', 'script', and so on) MUST be unique 1261 within that given record type with the following exception: if a 1262 particular 'Description' field occurs in multiple records of a given 1263 type, then at most one of the records can omit the 'Deprecated' 1264 field; all deprecated records that share a 'Description' MUST have 1265 the same 'Preferred-Value'; and all non-deprecated records MUST be 1266 that 'Preferred-Value'. This means that two records of the same type 1267 that share a 'Description' are also semantically equivalent and no 1268 more than one record with a given 'Description' is preferred for that 1269 meaning. 1271 For example, consider the 'language' subtags 'zza' (Zaza) and 'diq' 1272 (Dimli). It so happens that 'zza' is a macrolanguage enclosing 'diq' 1273 and thus also has a description in ISO 639-3 of "Dimli". This 1274 description was edited to read "Dimli (macrolanguage)" in the 1275 registry record for 'zza' to prevent a collision. 1277 By contrast, the subtags 'he' and 'iw' share a 'Description' value of 1278 "Hebrew"; this is permitted because 'iw' is deprecated and its 1279 'Preferred-Value' is 'he'. 1281 For fields of type 'language', the first 'Description' field 1282 appearing in the Registry corresponds whenever possible to the 1283 Reference Name assigned by ISO 639-3. This helps facilitate cross- 1284 referencing between ISO 639 and the registry. 1286 When creating or updating a record due to the action of one of the 1287 source standards, the Language Subtag Reviewer MAY edit descriptions 1288 to correct irregularities in formatting (such as misspellings, 1289 inappropriate apostrophes or other punctuation, or excessive or 1290 missing spaces) prior to submitting the proposed record to the 1291 ietf-languages@iana.org list for consideration. 1293 3.1.6. Deprecated Field 1295 The field 'Deprecated' contains the date the record was deprecated 1296 and MAY be added, changed, or removed from any record via the 1297 maintenance process described in Section 3.3 or via the registration 1298 process described in Section 3.5. Usually, the addition of a 1299 'Deprecated' field is due to the action of one of the standards 1300 bodies, such as ISO 3166, withdrawing a code. Although valid in 1301 language tags, subtags and tags with a 'Deprecated' field are 1302 deprecated and validating processors SHOULD NOT generate these 1303 subtags. Note that a record that contains a 'Deprecated' field and 1304 no corresponding 'Preferred-Value' field has no replacement mapping. 1306 In some historical cases, it might not have been possible to 1307 reconstruct the original deprecation date. For these cases, an 1308 approximate date appears in the registry. Some subtags and some 1309 grandfathered or redundant tags were deprecated before the initial 1310 creation of the registry. The exact rules for this appear in Section 1311 2 of [RFC4645]. Note that these records have a 'Deprecated' field 1312 with an earlier date then the corresponding 'Added' field! 1314 3.1.7. Preferred-Value Field 1316 The field 'Preferred-Value' contains a mapping between the record in 1317 which it appears and another tag or subtag (depending on the record's 1318 'Type'). The value in this field is used for canonicalization (see 1319 Section 4.5). In cases where the subtag or tag also has a 1320 'Deprecated' field, then the 'Preferred-Value' is RECOMMENDED as the 1321 best choice to represent the value of this record when selecting a 1322 language tag. 1324 Records containing a Preferred-Value fall into one of these four 1325 groups: 1327 1. ISO 639 language codes that were later withdrawn in favor of 1328 other codes. These values are mostly a historical curiosity. 1329 The 'he'/'iw' pairing above is an example of this. 1331 2. Subtags (with types other than language or extlang) taken from 1332 codes or values that have been withdrawn in favor of a new code. 1333 In particular, this applies to region subtags taken from ISO 1334 3166-1, because sometimes a country will change its name or 1335 administration in such a way that warrants a new region code. In 1336 some cases, countries have reverted to an older name, which might 1337 already be encoded. For example, the subtag 'ZR' (Zaire) was 1338 replaced by the subtag 'CD' (Democratic Republic of the Congo) 1339 when that country's name was changed. 1341 3. Tags or subtags that have become obsolete because the values they 1342 represent were later encoded. Many of the grandfathered or 1343 redundant tags were later encoded by ISO 639, for example, and 1344 fall into this grouping. For example, "i-klingon" was deprecated 1345 when the subtag 'tlh' was added. The record for "i-klingon" has 1346 a 'Preferred-Value' of 'tlh'. 1348 4. Extended language subtags always have a mapping to their 1349 identical primary language subtag. For example, the extended 1350 language subtag 'yue' (Cantonese) can be used to form the tag 1351 "zh-yue". It has a Preferred-Value mapping to the primary 1352 language subtag 'yue', meaning that a tag such as 1353 "zh-yue-Hant-HK" can be canonicalized to "yue-Hant-HK". 1355 Records other than those of type 'extlang' that contain a 'Preferred- 1356 Value' field MUST also have a 'Deprecated' field. This field 1357 contains the date on which the tag or subtag was deprecated in favor 1358 of the preferred value. 1360 For records of type 'extlang', the 'Preferred-Value' field appears 1361 without a corresponding 'Deprecated' field. An implementation MAY 1362 ignore these preferred value mappings, although if it ignores the 1363 mapping, it SHOULD do so consistently. It SHOULD also treat the 1364 Preferred-Value as equivalent to the mapped item. For example, the 1365 tags "zh-yue-Hant-HK" and "yue-Hant-HK" are semantically equivalent 1366 and ought to be treated as if they were the same tag. 1368 Occasionally the deprecated code is preferred in certain contexts. 1369 For example, both "iw" and "he" can be used in the Java programming 1370 language, but "he" is converted on input to "iw", which is thus the 1371 canonical form in Java. 1373 'Preferred-Value' mappings in records of type 'region' sometimes do 1374 not represent exactly the same meaning as the original value. There 1375 are many reasons for a country code to be changed, and the effect 1376 this has on the formation of language tags will depend on the nature 1377 of the change in question. For example, the region subtag 'YD' 1378 (Democratic Yemen) was deprecated in favor of the subtag 'YE' (Yemen) 1379 when those two countries unified in 1990. 1381 A 'Preferred-Value' MAY be added to, changed, or removed from records 1382 according to the rules in Section 3.3. Addition, modification, or 1383 removal of a 'Preferred-Value' field in a record does not imply that 1384 content using the affected subtag needs to be retagged. 1386 The 'Preferred-Value' fields in records of type "grandfathered" and 1387 "redundant" each contain an "extended language range" ([RFC4647]) 1388 that is strongly RECOMMENDED for use in place of the record's value. 1389 In many cases, these mappings were created via deprecation of the 1390 tags during the period before [RFC4646] was adopted. For example, 1391 the tag "no-nyn" was deprecated in favor of the ISO 639-1-defined 1392 language code 'nn'. 1394 The 'Preferred-Value' field in subtag records of type "extlang" also 1395 contains an "extended language range". This allows the subtag to be 1396 deprecated in favor of either a single primary language subtag or a 1397 new language-extlang sequence. 1399 Usually the addition, removal, or change of a Preferred-Value field 1400 for a subtag is done to reflect changes in one of the source 1401 standards. For example, if an ISO 3166-1 region code is deprecated 1402 in favor of another code, that SHOULD result in the addition of a 1403 Preferred-Value field. 1405 Changes to one subtag MAY affect other subtags as well: when 1406 proposing changes to the registry, the Language Subtag Reviewer will 1407 review the registry for such effects and propose the necessary 1408 changes using the process in Section 3.5, although anyone MAY request 1409 such changes. For example: 1411 Suppose that subtag 'XX' has a Preferred-Value of 'YY'. If 'YY' 1412 later changes to have a Preferred-Value of 'ZZ', then the 1413 Preferred-Value for 'XX' MUST also change to be 'ZZ'. 1415 Suppose that a registered language subtag 'dialect' represents a 1416 language not yet available in any part of ISO 639. The later 1417 addition of a corresponding language code in ISO 639 SHOULD result 1418 in the addition of a Preferred-Value for 'dialect'. 1420 3.1.8. Prefix Field 1422 The field 'Prefix' contains a valid language tag that is RECOMMENDED 1423 as one possible prefix to this record's subtag, perhaps with other 1424 subtags. That is, when including an extended language or a variant 1425 subtag that has at least one 'Prefix' in a language tag, the 1426 resulting tag SHOULD match at least one of the subtag's 'Prefix' 1427 fields using the "Extended Filtering" algorithm (see [RFC4647]) and 1428 each of the subtags in that 'Prefix' SHOULD appear before the subtag 1429 itself. 1431 The 'Prefix' field MUST appear exactly once in a record of type 1432 'extlang'. The 'Prefix' field MAY appear multiple times (or not at 1433 all) in records of type 'variant'. Additional fields of this type 1434 MAY be added to a 'variant' record via the registration process, 1435 provided the 'variant' record already has at least one 'Prefix' 1436 field. 1438 Each 'Prefix' field indicates a particular sequence of subtags that 1439 form a meaningful tag with this subtag. For example, the extended 1440 language subtag 'cmn' (Mandarin Chinese) only makes sense with its 1441 prefix 'zh' (Chinese). Similarly, 'rozaj' (Resian, a dialect of 1442 Slovenian) would be appropriate when used with its prefix 'sl' 1443 (Slovenian), while tags such as "is-1994" are not appropriate (and 1444 probably not meaningful). Although the prefix for 'rozaj' is "sl", 1445 other subtags might appear between them. For example, the tag "sl- 1446 IT-rozaj" (Slovenian, Italy, Resian) matches the Prefix "sl". 1448 The 'Prefix' also indicates when variant subtags make sense when used 1449 together (many that otherwise share a 'Prefix' are mutually 1450 exclusive) and what the relative ordering of variants is supposed to 1451 be. For example, the variant '1994' (Standardized Resian 1452 orthography) has several 'Prefix' fields in the registry ("sl-rozaj", 1453 "sl-rozaj-biske", "sl-rozaj-njiva", "sl-rozaj-osojs", and "sl-rozaj- 1454 solba"). This not only indicates that '1994' is appropriate to use 1455 with each of these five Resian variant subtags ('rozaj', 'biske', 1456 'njiva', 'osojs', and 'solba') but also that it SHOULD appear 1457 following any of these variants in a tag. Thus, the language tag 1458 ought to take the form "sl-rozaj-biske-1994" rather than "sl-1994- 1459 rozaj-biske" or "sl-rozaj-1994-biske". 1461 If a record includes no 'Prefix' field, a 'Prefix' field MUST NOT be 1462 added to the record at a later date. Otherwise, changes (additions, 1463 deletions, or modifications) to the set of 'Prefix' fields MAY be 1464 registered, as long as they strictly widen the range of language tags 1465 that are recommended. For example, the Prefix "be-Latn" (Belarusian, 1466 Latin script) could be replaced by the Prefix "be" (Belarusian) but 1467 not by the Prefix "ru-Latn" (Russian, Latin script) or the Prefix 1468 "be-Latn-BY" (Belarusian, Latin script, Belarus), since these latter 1469 either change or narrow the range of suggested tags. 1471 The field-body of the 'Prefix' field MUST NOT conflict with any 1472 'Prefix' already registered for a given record. Such a conflict 1473 would occur when no valid tag could be constructed that would contain 1474 the prefix, such as when two subtags each have a 'Prefix' that 1475 contains the other subtag. For example, suppose that the subtag 1476 'avariant' has the prefix "es-bvariant". Then the subtag 'bvariant' 1477 cannot given the prefix 'avariant', for that would require a tag of 1478 the form "es-avariant-bvariant-avariant", which would not be valid. 1480 3.1.9. Suppress-Script Field 1482 The field 'Suppress-Script' contains a script subtag (whose record 1483 appears in the registry). The field 'Suppress-Script' MUST appear 1484 only in records whose 'Type' field-body is either 'language' or 1485 'extlang'. This field MUST NOT appear more than one time in a 1486 record. 1488 This field indicates a script used to write the overwhelming majority 1489 of documents for the given language. The subtag for such a script 1490 therefore adds no distinguishing information to a language tag and 1491 thus SHOULD NOT be used for most documents in that language. 1492 Omitting the script subtag indicated by this field helps ensure 1493 greater compatibility between the language tags generated according 1494 to the rules in this document and language tags and tag processors or 1495 consumers based on RFC 3066. For example, virtually all Icelandic 1496 documents are written in the Latin script, making the subtag 'Latn' 1497 redundant in the tag "is-Latn". 1499 Many language subtag records do not have a 'Suppress-Script' field. 1500 The lack of a 'Suppress-Script' might indicate that the language is 1501 customarily written in more than one script or that the language is 1502 not customarily written at all. It might also mean that sufficient 1503 information was not available when the record was created and thus 1504 remains a candidate for future registration. 1506 3.1.10. Macrolanguage Field 1508 The field 'Macrolanguage' contains a primary language subtag (whose 1509 record appears in the registry). This field indicates a language 1510 that encompasses this subtag's language according to assignments made 1511 by ISO 639-3. 1513 ISO 639-3 labels some languages in the registry as "macrolanguages". 1514 ISO 639-3 defines the term "Macrolanguage" to mean "clusters of 1515 closely-related language varieties that [...] can be considered 1516 distinct individual languages, yet in certain usage contexts a single 1517 language identity for all is needed". These correspond to codes 1518 registered in ISO 639-2 as individual languages that were found to 1519 correspond to more than one language in ISO 639-3. 1521 A language contained within a macrolanguage is called an "encompassed 1522 language". The record for each encompassed language contains a 1523 'Macrolanguage' field in the registry; the macrolanguages themselves 1524 are not specially marked. Note that some encompassed languages have 1525 ISO 639-1 or ISO 639-2 codes. 1527 The Macrolanguage field can only occur in records of type 'language' 1528 or 'extlang'. Only values assigned by ISO 639-3 will be considered 1529 for inclusion. Macrolanguage fields MAY be added or removed via the 1530 normal registration process whenever ISO 639-3 defines new values or 1531 withdraws old values. Macrolanguages are informational, and MAY be 1532 removed or changed if ISO 639-3 changes the values. For more 1533 information on the use of this field and choosing between 1534 macrolanguage and encompassed language subtags, see Section 4.1.1. 1536 For example, the language subtags 'nb' (Norwegian Bokmal) and 'nn' 1537 (Norwegian Nynorsk) each have a Macrolanguage entry of 'no' 1538 (Norwegian). For more information see Section 4.1. 1540 3.1.11. Scope Field 1542 The field 'Scope' contains classification information about a primary 1543 or extended language subtag derived from ISO 639. Most languages 1544 have a scope of 'individual', which means that the language is not a 1545 macrolanguage, collection, special code, or private use. That is, it 1546 is what one would normally consider to be 'a language'. Any primary 1547 or extended language subtag that has no 'Scope' field is an 1548 individual language. 1550 Scope information can sometimes be helpful in selecting language 1551 tags, since it indicates the purpose or "scope" of the code 1552 assignment within ISO 639. The available values are: 1554 o 'macrolanguage' - Indicates a macrolanguage as defined by ISO 1555 639-3 (see above (Section 3.1.10)). A macrolanguage is a cluster 1556 of closely-related languages that are sometimes considered to be a 1557 single language. 1559 o 'collection' - Indicates a subtag that represents a collection of 1560 languages, typically related by some type of historical, 1561 geographical, or linguistic association. Unlike a macrolanguage, 1562 a collection can contain languages that are only loosely related 1563 and a collection cannot be used interchangeably with languages 1564 that belong to it. 1566 o 'special' - Indicates a special language code. These are subtags 1567 used for identifying linguistic attributes not particularly 1568 associated with a concrete language. These include codes for when 1569 the language is undetermined or for non-linguistic content. 1571 o 'private-use' - Indicates a code reserved for private use in the 1572 underlying standard. Subtags with this scope can be used to 1573 indicate a primary language for which no ISO 639 or registered 1574 assignment exists. 1576 The Scope field MAY appear in records of type 'language' or 1577 'extlang'. Note that many of the prefixes for extended language 1578 subtags will have a Scope of 'macrolanguage' (although some will not) 1579 and that many languages that have a Scope of 'macrolanguage' will 1580 have extended language subtags associated with them. 1582 The Scope field MAY be added, modified, or removed via the 1583 registration process, provided the change mirrors changes by ISO 639 1584 to the assignment's classification. Such a change is expected to be 1585 rare. 1587 For example, the primary language subtag 'zh' (Chinese) has a Scope 1588 of 'macrolanguage', while its enclosed language 'nan' (Min Nan 1589 Chinese) has a Scope of 'individual'. The special value 'und' 1590 (Undetermined) has a Scope of 'special'. The ISO 639-5 collection 1591 'gem' (Germanic languages) has a Scope of 'collection'. 1593 3.1.12. Comments Field 1595 The field 'Comments' contains additional information about the record 1596 and MAY appear more than once per record. The field-body MAY include 1597 the full range of Unicode characters and is not restricted to any 1598 particular script. This field MAY be inserted or changed via the 1599 registration process and no guarantee of stability is provided. 1601 The content of this field is not restricted, except by the need to 1602 register the information, the suitability of the request, and by 1603 reasonable practical size limitations. The primary reason for the 1604 'Comments' field is subtag identification: to help distinguish the 1605 subtag from others with which it might be confused as an aid to 1606 usage. Large amounts of information about the use, history, or 1607 general background of a subtag are frowned upon, as these generally 1608 belong in a registration request rather than in the registry. 1610 3.2. Language Subtag Reviewer 1612 The Language Subtag Reviewer moderates the ietf-languages@iana.org 1613 mailing list, responds to requests for registration, and performs the 1614 other registry maintenance duties described in Section 3.3. Only the 1615 Language Subtag Reviewer is permitted to request IANA to change, 1616 update, or add records to the Language Subtag Registry. The Language 1617 Subtag Reviewer MAY delegate list moderation and other clerical 1618 duties as needed. 1620 The Language Subtag Reviewer is appointed by the IESG for an 1621 indefinite term, subject to removal or replacement at the IESG's 1622 discretion. The IESG will solicit nominees for the position (upon 1623 adoption of this document or upon a vacancy) and then solicit 1624 feedback on the nominees' qualifications. Qualified candidates 1625 should be familiar with BCP 47 and its requirements; be willing to 1626 fairly, responsively, and judiciously administer the registration 1627 process; and be suitably informed about the issues of language 1628 identification so that the reviewer can assess the claims and draw 1629 upon the contributions of language experts and subtag requesters. 1631 The subsequent performance or decisions of the Language Subtag 1632 Reviewer MAY be appealed to the IESG under the same rules as other 1633 IETF decisions (see [RFC2026]). The IESG can reverse or overturn the 1634 decisions of the Language Subtag Reviewer, provide guidance, or take 1635 other appropriate actions. 1637 3.3. Maintenance of the Registry 1639 Maintenance of the registry requires that, as codes are assigned or 1640 withdrawn by ISO 639, ISO 15924, ISO 3166, and UN M.49, the Language 1641 Subtag Reviewer MUST evaluate each change and determine the 1642 appropriate course of action according to the rules in this document. 1643 Such updates follow the registration process described in 1644 Section 3.5. Usually the Language Subtag Reviewer will start the 1645 process for the new or updated record by filling in the registration 1646 form and submitting it. If a change to one of these standards takes 1647 place and the Language Subtag Reviewer does not do this in a timely 1648 manner, then any interested party MAY submit the form. Thereafter 1649 the registration process continues normally. 1651 Note that some registrations affect other subtags--perhaps more than 1652 one--as when a region subtag is being deprecated in favor of a new 1653 value. The Language Subtag Reviewer is responsible for ensuring that 1654 any such changes are properly registered, with each change requiring 1655 its own registration form. 1657 The Language Subtag Reviewer MUST ensure that new subtags meet the 1658 requirements elsewhere in this document (and most especially in 1659 Section 3.4) or submit an appropriate registration form for an 1660 alternate subtag as described in that section. Each individual 1661 subtag affected by a change MUST be sent to the 1662 ietf-languages@iana.org list with its own registration form and in a 1663 separate message. 1665 3.4. Stability of IANA Registry Entries 1667 The stability of entries and their meaning in the registry is 1668 critical to the long-term stability of language tags. The rules in 1669 this section guarantee that a specific language tag's meaning is 1670 stable over time and will not change. 1672 These rules specifically deal with how changes to codes (including 1673 withdrawal and deprecation of codes) maintained by ISO 639, ISO 1674 15924, ISO 3166, and UN M.49 are reflected in the IANA Language 1675 Subtag Registry. Assignments to the IANA Language Subtag Registry 1676 MUST follow the following stability rules: 1678 1. Values in the fields 'Type', 'Subtag', 'Tag', and 'Added' MUST 1679 NOT be changed and are guaranteed to be stable over time. 1681 2. Values in the fields 'Preferred-Value' and 'Deprecated' MAY be 1682 added, altered, or removed via the registration process. These 1683 changes SHOULD be limited to changes necessary to mirror changes 1684 in one of the underlying standards (ISO 639, ISO 15924, ISO 1685 3166-1, or UN M.49) and typically alteration or removal of a 1686 Preferred-Value is limited specifically to region codes. 1688 3. Values in the 'Description' field MUST NOT be changed in a way 1689 that would invalidate any existing tags. The description MAY be 1690 broadened somewhat in scope, changed to add information, or 1691 adapted to the most common modern usage. For example, countries 1692 occasionally change their names; a historical example of this 1693 would be "Upper Volta" changing to "Burkina Faso". 1695 4. Values in the field 'Prefix' MAY be added to existing records of 1696 type 'variant' via the registration process, provided the 1697 'variant' already has at least one 'Prefix'. A 'Prefix' field 1698 SHALL NOT be registered for any 'variant' that has no existing 1699 'Prefix' field. If a prefix is added to a variant record, 1700 'Comment' fields MAY be used to explain different usages with 1701 the various prefixes. 1703 5. Values in the field 'Prefix' in records of type 'variant' MAY 1704 also be modified, so long as the modifications broaden the set 1705 of prefixes. That is, a prefix MAY be replaced by one of its 1706 own prefixes. For example, the prefix "en-US" could be replaced 1707 by "en", but not by the prefixes "en-Latn", "fr", or "en-US- 1708 boont". If one of those prefix values were needed, it would 1709 have to be separately registered. 1711 6. Values in the field 'Prefix' in records of type 'extlang' MUST 1712 NOT be added, modified, or removed. 1714 7. The field 'Prefix' MUST NOT be removed from any record in which 1715 it appears. This field SHOULD be included in the initial 1716 registration of any records of type 'variant' and MUST be 1717 included in any records of type 'extlang'. 1719 8. The field 'Comments' MAY be added, changed, modified, or removed 1720 via the registration process or any of the processes or 1721 considerations described in this section. 1723 9. The field 'Suppress-Script' MAY be added or removed via the 1724 registration process. 1726 10. The field 'Macrolanguage' MAY be added or removed via the 1727 registration process, but only in response to changes made by 1728 ISO 639. The Macrolanguage field appears whenever a language 1729 has a corresponding Macrolanguage in ISO 639. That is, the 1730 Macrolanguage fields in the registry exactly match those of ISO 1731 639. No other macrolanguage mappings will be considered for 1732 registration. 1734 11. The field 'Scope' MAY be added or removed from a primary or 1735 extended language subtag after initial registration, and it MAY 1736 be modified in order to match any changes made by ISO 639. 1737 Changes to the 'Scope' field MUST mirror changes made by ISO 1738 639. Note that primary or extended language subtags whose 1739 records do not contain a 'Scope' field (that is, most of them) 1740 are individual languages as described in Section 3.1.11. 1742 12. Primary and extended language subtags (other than independently 1743 registered values created using the registration process) are 1744 created according to the assignments of the various parts of ISO 1745 639, as follows: 1747 A. Codes assigned by ISO 639-1 that do not conflict with 1748 existing two-letter primary language subtags and which have 1749 no corresponding three-letter primary defined in the 1750 registry are entered into the IANA registry as new records 1751 of type 'language'. Note that languages given an ISO 639-1 1752 code cannot be given extended language subtags, even if 1753 encompassed by a macrolanguage. 1755 B. Codes assigned by ISO 639-3 or ISO 639-5 that do not 1756 conflict with existing three-letter primary language subtags 1757 and which do not have ISO 639-1 codes assigned (or expected 1758 to be assigned) are entered into the IANA registry as new 1759 records of type 'language'. Note that these two standards 1760 now comprise a superset of ISO 639-2 codes. Codes that have 1761 a defined "macrolanguage" mapping at the time of their 1762 registration MUST contain a "Macrolanguage" field. 1764 C. Codes assigned by ISO 639-3 MAY also be considered for an 1765 extended language subtag registration. Note that they MUST 1766 be assigned a primary language subtag record of type 1767 'language' even when an 'extlang' record is proposed. When 1768 considering extended language subtag assignment, these 1769 criteria apply: 1771 1. If a language has a macrolanguage mapping, and that 1772 macrolanguage has other encompassed languages that are 1773 assigned extended language subtags, then the new 1774 language SHOULD have an 'extlang' record assigned to it 1775 as well. For example, any language with a macrolanguage 1776 of 'zh' or 'ar' would be assigned an 'extlang' record. 1778 2. 'Extlang' records SHOULD NOT be created for languages if 1779 other languages encompassed by the macrolanguage do not 1780 also include 'extlang' records. For example, if a new 1781 Serbo-Croatian ('sh') language were registered, it would 1782 not get an extlang record because other languages 1783 encompassed such as Serbian ('sr') do not include one in 1784 the registry. 1786 3. Sign languages SHOULD have an 'extlang' record with a 1787 'Prefix' of 'sgn'. 1789 4. 'Extlang' records MUST NOT be created for items already 1790 in the registry. Extended language subtags will only be 1791 considered at the time of initial registration. 1793 5. Extended language subtag records MUST include the fields 1794 'Prefix' and 'Preferred-Value' with field-values 1795 assigned as described in Section 2.2.2. 1797 D. Any other codes assigned by ISO 639-2 that do not conflict 1798 with existing three-letter primary or extended language 1799 subtags and which do not have ISO 639-1 two-letter codes 1800 assigned are entered into the IANA registry as new records 1801 of type 'language'. This type of registration is not 1802 supposed to occur in the future. 1804 13. Codes assigned by ISO 15924 and ISO 3166-1 that do not conflict 1805 with existing subtags of the associated type and whose meaning 1806 is not the same as an existing subtag of the same type are 1807 entered into the IANA registry as new records. 1809 14. Codes assigned by ISO 639, ISO 15924, or ISO 3166-1 that are 1810 withdrawn by their respective maintenance or registration 1811 authority remain valid in language tags. A 'Deprecated' field 1812 containing the date of withdrawal MUST be added to the record. 1813 If a new record of the same type is added that represents a 1814 replacement value, then a 'Preferred-Value' field MAY also be 1815 added. The registration process MAY be used to add comments 1816 about the withdrawal of the code by the respective standard. 1818 For example: the region code 'TL' was assigned to the country 1819 'Timor-Leste', replacing the code 'TP' (which was assigned to 1820 'East Timor' when it was under administration by Portugal). 1821 The subtag 'TP' remains valid in language tags, but its 1822 record contains the 'Preferred-Value' of 'TL' and its field 1823 'Deprecated' contains the date the new code was assigned 1824 ('2004-07-06'). 1826 15. Codes assigned by ISO 639, ISO 15924, or ISO 3166-1 that 1827 conflict with existing subtags of the associated type, including 1828 subtags that are deprecated, MUST NOT be entered into the 1829 registry. The following additional considerations apply to 1830 subtag values that are reassigned: 1832 A. For ISO 639 codes, if the newly assigned code's meaning is 1833 not represented by a subtag in the IANA registry, the 1834 Language Subtag Reviewer, as described in Section 3.5, SHALL 1835 prepare a proposal for entering in the IANA registry as soon 1836 as practical a registered language subtag as an alternate 1837 value for the new code. The form of the registered language 1838 subtag will be at the discretion of the Language Subtag 1839 Reviewer and MUST conform to other restrictions on language 1840 subtags in this document. 1842 B. For all subtags whose meaning is derived from an external 1843 standard (that is, by ISO 639, ISO 15924, ISO 3166-1, or UN 1844 M.49), if a new meaning is assigned to an existing code and 1845 the new meaning broadens the meaning of that code, then the 1846 meaning for the associated subtag MAY be changed to match. 1847 The meaning of a subtag MUST NOT be narrowed, however, as 1848 this can result in an unknown proportion of the existing 1849 uses of a subtag becoming invalid. Note: ISO 639 1850 registration authority (RA) has adopted a similar stability 1851 policy. 1853 C. For ISO 15924 codes, if the newly assigned code's meaning is 1854 not represented by a subtag in the IANA registry, the 1855 Language Subtag Reviewer, as described in Section 3.5, SHALL 1856 prepare a proposal for entering in the IANA registry as soon 1857 as practical a registered variant subtag as an alternate 1858 value for the new code. The form of the registered variant 1859 subtag will be at the discretion of the Language Subtag 1860 Reviewer and MUST conform to other restrictions on variant 1861 subtags in this document. 1863 D. For ISO 3166-1 codes, if the newly assigned code's meaning 1864 is associated with the same UN M.49 code as another 'region' 1865 subtag, then the existing region subtag remains as the 1866 preferred value for that region and no new entry is created. 1867 A comment MAY be added to the existing region subtag 1868 indicating the relationship to the new ISO 3166-1 code. 1870 E. For ISO 3166-1 codes, if the newly assigned code's meaning 1871 is associated with a UN M.49 code that is not represented by 1872 an existing region subtag, then the Language Subtag 1873 Reviewer, as described in Section 3.5, SHALL prepare a 1874 proposal for entering the appropriate UN M.49 country code 1875 as an entry in the IANA registry. 1877 F. For ISO 3166-1 codes, if there is no associated UN numeric 1878 code, then the Language Subtag Reviewer SHALL petition the 1879 UN to create one. If there is no response from the UN 1880 within ninety days of the request being sent, the Language 1881 Subtag Reviewer SHALL prepare a proposal for entering in the 1882 IANA registry as soon as practical a registered variant 1883 subtag as an alternate value for the new code. The form of 1884 the registered variant subtag will be at the discretion of 1885 the Language Subtag Reviewer and MUST conform to other 1886 restrictions on variant subtags in this document. This 1887 situation is very unlikely to ever occur. 1889 16. UN M.49 has codes for both countries and areas (such as '276' 1890 for Germany) and geographical regions and sub-regions (such as 1891 '150' for Europe). UN M.49 country or area codes for which 1892 there is no corresponding ISO 3166-1 code SHOULD NOT be 1893 registered, except as a surrogate for an ISO 3166-1 code that is 1894 blocked from registration by an existing subtag. If such a code 1895 becomes necessary, then the registration authority for ISO 1896 3166-1 SHOULD first be petitioned to assign a code to the 1897 region. If the petition for a code assignment by ISO 3166-1 is 1898 refused or not acted on in a timely manner, the registration 1899 process described in Section 3.5 MAY then be used to register 1900 the corresponding UN M.49 code. This way, UN M.49 codes remain 1901 available as the value of last resort in cases where ISO 3166-1 1902 reassigns a deprecated value in the registry. 1904 17. The redundant and grandfathered entries together form the 1905 complete list of tags registered under [RFC3066]. The redundant 1906 tags are those previously registered tags that can now be formed 1907 using the subtags defined in the registry. The grandfathered 1908 entries include those that can never be legal because they are 1909 'irregular' (that is, they do not match the 'langtag' production 1910 in Figure 1), are limited by rule (subtags such as 'nyn' and 1911 'min' look like the extlang production, but cannot be registered 1912 as extended language subtags), or their subtags are 1913 inappropriate for registration. All of the grandfathered tags 1914 are listed in either the 'regular' or the 'irregular' 1915 productions in the ABNF. Under [RFC4646] it was possible for 1916 grandfathered tags to become redundant. However, all of the 1917 tags for which this was possible became redundant before this 1918 document was produced. So the set of redundant and 1919 grandfathered tags is now permanent and immutable: new entries 1920 of either type MUST NOT be added and existing entries MUST NOT 1921 be removed. The decision-making process about which tags were 1922 initially grandfathered and which were made redundant is 1923 described in [RFC4645]. 1925 Many of the grandfathered tags are deprecated, indeed, they were 1926 deprecated even before [RFC4646]. For example, the tag "art- 1927 lojban" was deprecated in favor of the primary language subtag 1928 'jbo'. These tags could have been made 'redundant' by 1929 registering some of their subtags as 'variants'. The 'variant- 1930 like' subtags in the grandfathered registrations SHALL NOT be 1931 registered in the future, even with a similar or identical 1932 meaning. 1934 3.5. Registration Procedure for Subtags 1936 The procedure given here MUST be used by anyone who wants to use a 1937 subtag not currently in the IANA Language Subtag Registry or who 1938 wishes to add, modify, update, or remove information in existing 1939 records as permitted by this document. 1941 Only subtags of type 'language' and 'variant' will be considered for 1942 independent registration of new subtags. Subtags needed for 1943 stability and subtags necessary to keep the registry synchronized 1944 with ISO 639, ISO 15924, ISO 3166, and UN M.49 within the limits 1945 defined by this document also use this process, as described in 1946 Section 3.3 and subject to stability provisions as described in 1947 Section 3.4. 1949 Registration requests are accepted relating to information in the 1950 'Comments', 'Deprecated', 'Description', 'Prefix', 'Preferred-Value', 1951 or 'Suppress-Script' fields in a subtag's record as described in 1952 Section 3.4. Changes to all other fields in the IANA registry are 1953 NOT permitted. 1955 Registering a new subtag or requesting modifications to an existing 1956 tag or subtag starts with the requester filling out the registration 1957 form reproduced below. Note that each response is not limited in 1958 size so that the request can adequately describe the registration. 1960 The fields in the "Record Requested" section SHOULD follow the 1961 requirements in Section 3.1. 1963 LANGUAGE SUBTAG REGISTRATION FORM 1964 1. Name of requester: 1965 2. E-mail address of requester: 1966 3. Record Requested: 1968 Type: 1969 Subtag: 1970 Description: 1971 Prefix: 1972 Preferred-Value: 1973 Deprecated: 1974 Suppress-Script: 1975 Macrolanguage: 1976 Comments: 1978 4. Intended meaning of the subtag: 1979 5. Reference to published description 1980 of the language (book or article): 1981 6. Any other relevant information: 1983 Figure 5: The Language Subtag Registration Form 1985 Examples of completed registration forms can be found in Appendix C. 1986 A complete list of approved registration forms is online at 1987 http://www.iana.org/assignments/lang-subtags-templates/. 1989 The subtag registration form MUST be sent to 1990 . Registration requests receive a two-week 1991 review period before being approved and submitted to IANA for 1992 inclusion in the registry. If modifications are made to the request 1993 during the course of the registration process (such as corrections to 1994 meet the requirements in Section 3.1 or to make the 'Description' 1995 fields unique for the given record type) the modified form MUST also 1996 be sent to at least one week prior to 1997 submission to IANA. 1999 The ietf-languages list is an open list and can be joined by sending 2000 a request to . The list can be 2001 hosted by IANA or by any third party at the request of IESG. 2003 Before forwarding any registration to IANA, the Language Subtag 2004 Reviewer MUST ensure that all requirements in this document are met. 2005 This includes ensuring that values in the 'Subtag' field match case 2006 according to the description in Section 3.1.4 and that 'Description' 2007 fields are unique for the given record type as described in 2008 Section 3.1.5. The Reviewer MUST also ensure that an appropriate 2009 File-Date record is included in the request, to assist IANA when 2010 updating the registry (see Section 5.1). 2012 Some fields in both the registration form as well as the registry 2013 record itself permit the use of non-ASCII characters. Registration 2014 requests SHOULD use the UTF-8 encoding for consistency and clarity. 2015 However, since some mail clients do not support this encoding, other 2016 encodings MAY be used for the registration request. The Language 2017 Subtag Reviewer is responsible for ensuring that the proper Unicode 2018 characters appear in both the archived request form and the registry 2019 record. In the case of a transcription or encoding error by IANA, 2020 the Language Subtag Reviewer will request that the registry be 2021 repaired, providing any necessary information to assist IANA. 2023 Extended language subtags (type 'extlang'), by definition, are always 2024 encompassed by another language. All records of type 'extlang' MUST, 2025 therefore, contain a 'Prefix' field at the time of registration. 2026 This Prefix field can never be altered or removed and requests to do 2027 so MUST be rejected. 2029 Variant subtags are usually registered for use with a particular 2030 range of language tags and variant subtags based on the terminology 2031 of the language to which they are apply are encouraged. For example, 2032 the subtag 'rozaj' (Resian) is intended for use with language tags 2033 that start with the primary language subtag "sl" (Slovenian), since 2034 Resian is a dialect of Slovenian. Thus, the subtag 'rozaj' would be 2035 appropriate in tags such as "sl-Latn-rozaj" or "sl-IT-rozaj". This 2036 information is stored in the 'Prefix' field in the registry. Variant 2037 registration requests SHOULD include at least one 'Prefix' field in 2038 the registration form. 2040 Requests to assign an additional record of a given type with an 2041 existing subtag value MUST be rejected. For example, the variant 2042 subtag 'rozaj' already exists in the registry, so adding a second 2043 record of type 'variant' with the subtag 'rozaj' is prohibited. 2045 The 'Prefix' field for a given registered variant subtag exists in 2046 the IANA registry as a guide to usage. Additional 'Prefix' fields 2047 MAY be added by filing an additional registration form. In that 2048 form, the "Any other relevant information:" field MUST indicate that 2049 it is the addition of a prefix. 2051 Requests to add a 'Prefix' field to a variant subtag that imply a 2052 different semantic meaning SHOULD be rejected. For example, a 2053 request to add the prefix "de" to the subtag '1994' so that the tag 2054 "de-1994" represented some German dialect or orthographic form would 2055 be rejected. The '1994' subtag represents a particular Slovenian 2056 orthography and the additional registration would change or blur the 2057 semantic meaning assigned to the subtag. A separate subtag SHOULD be 2058 proposed instead. 2060 Requests to add a 'Prefix' to a variant subtag that has no current 2061 'Prefix' field MUST be rejected. Variants are registered with no 2062 prefix because they are potentially useful with many or even all 2063 languages. Adding one or more 'Prefix' fields would be potentially 2064 harmful to the use of the variant, since it dramatically reduces the 2065 scope of the subtag (which is not allowed under the stability rules 2066 (Section 3.4), as opposed to broadening the scope of the subtag, 2067 which is what the addition of a 'Prefix' normally does. An example 2068 of such a "no-prefix" variant is the subtag 'fonipa', which 2069 represents the International Phonetic Alphabet, a scheme which can be 2070 used to transcribe many languages. 2072 The 'Description' fields provided in the request MUST contain at 2073 least one description written or transcribed into the Latin script; 2074 the request MAY also include additional 'Description' fields in any 2075 script or language. The 'Description' field is used for 2076 identification purposes and doesn't necessarily represent the actual 2077 native name of the language or variation. It also doesn't have to be 2078 in any particular language, but SHOULD be both suitable and 2079 sufficient to identify the item in the record. The Language Subtag 2080 Reviewer will check and edit any proposed 'Description' fields so as 2081 to ensure uniqueness and prevent collisions with 'Description' fields 2082 in other records of the same type. If this occurs in an independent 2083 registration request, the Language Subtag Reviewer MUST resubmit the 2084 record to ietf-languages@iana.org, treating it as a modification of a 2085 request due to discussion, as described in Section 3.5, unless the 2086 request's sole purpose is to introduce a duplicate 'Description' 2087 field, in which case the request SHALL be rejected. 2089 While the 'Description' field itself is not guaranteed to be stable 2090 and errata corrections MAY be undertaken from time to time, attempts 2091 to provide translations or transcriptions of entries in the registry 2092 itself will probably be frowned upon by the community or rejected 2093 outright, as changes of this nature have an impact on the provisions 2094 in Section 3.4. 2096 Soon after the two-week review period has passed, the Language Subtag 2097 Reviewer MUST take one of the following actions: 2099 o Explicitly accept the request and forward the form containing the 2100 record to be inserted or modified to iana@iana.org according to 2101 the procedure described in Section 3.3. 2103 o Explicitly reject the request because of significant objections 2104 raised on the list or due to problems with constraints in this 2105 document (which MUST be explicitly cited). 2107 o Extend the review period by granting an additional two-week 2108 increment to permit further discussion. After each two-week 2109 increment, the Language Subtag Reviewer MUST indicate on the list 2110 whether the registration has been accepted, rejected, or extended. 2112 Note that the Language Subtag Reviewer MAY raise objections on the 2113 list if he or she so desires. The important thing is that the 2114 objection MUST be made publicly. 2116 Sometimes the request needs to be modified as a result of discussion 2117 during the review period or due to requirements in this document. 2118 The applicant, Language Subtag Reviewer, or others MAY submit a 2119 modified version of the completed registration form, which will be 2120 considered in lieu of the original request with the explicit approval 2121 of the applicant. Such changes do not restart the two-week 2122 discussion period, although an application containing the final 2123 record submitted to IANA MUST appear on the list at least one week 2124 prior to the Language Subtag Reviewer forwarding the record to IANA. 2125 The applicant MAY modify a rejected application with more appropriate 2126 or additional information and submit it again; this starts a new two- 2127 week comment period. 2129 Registrations initiated due to the provisions of Section 3.3 or 2130 Section 3.4 SHALL NOT be rejected altogether (since they have to 2131 ultimately appear in the registry) and SHOULD be completed as quickly 2132 as possible. The review process allows list members to comment on 2133 the specific information in the form and the record it contains and 2134 thus help ensure that it is correct and consistent. The Language 2135 Subtag Reviewer MAY reject a specific version of the form, but MUST 2136 propose a suitable replacement, extending the review period as 2137 described above, until the form is in a format worthy of reviewer's 2138 approval and meets with rough consensus of the list. 2140 Decisions made by the Language Subtag Reviewer MAY be appealed to the 2141 IESG [RFC2028] under the same rules as other IETF decisions 2142 [RFC2026]. This includes a decision to extend the review period or 2143 the failure to announce a decision in a clear and timely manner. 2145 The approved records appear in the Language Subtag Registry. The 2146 approved registration forms are available online under 2147 http://www.iana.org/assignments/lang-subtags-templates/. 2149 Updates or changes to existing records follow the same procedure as 2150 new registrations. The Language Subtag Reviewer decides whether 2151 there is consensus to update the registration following the two week 2152 review period; normally, objections by the original registrant will 2153 carry extra weight in forming such a consensus. 2155 Registrations are permanent and stable. Once registered, subtags 2156 will not be removed from the registry and will remain a valid way in 2157 which to specify a specific language or variant. 2159 Note: The purpose of the "Reference to published description" section 2160 in the registration form is to aid in verifying whether a language is 2161 registered or what language or language variation a particular subtag 2162 refers to. In most cases, reference to an authoritative grammar or 2163 dictionary of that language will be useful; in cases where no such 2164 work exists, other well-known works describing that language or in 2165 that language MAY be appropriate. The Language Subtag Reviewer 2166 decides what constitutes "good enough" reference material. This 2167 requirement is not intended to exclude particular languages or 2168 dialects due to the size of the speaker population or lack of a 2169 standardized orthography. Minority languages will be considered 2170 equally on their own merits. 2172 3.6. Possibilities for Registration 2174 Possibilities for registration of subtags or information about 2175 subtags include: 2177 o Primary language subtags for languages not listed in ISO 639 that 2178 are not variants of any listed or registered language MAY be 2179 registered. At the time this document was created, there were no 2180 examples of this form of subtag. Before attempting to register a 2181 language subtag, there MUST be an attempt to register the language 2182 with ISO 639. Subtags MUST NOT be registered for languages 2183 defined by codes that exist in ISO 639-1, ISO 639-2, or ISO 639-3, 2184 or that are under consideration by the ISO 639 registration 2185 authorities, or that have never been attempted for registration 2186 with those authorities. If ISO 639 has previously rejected a 2187 language for registration, it is reasonable to assume that there 2188 must be additional, very compelling evidence of need before it 2189 will be registered as a primary language subtag in the IANA 2190 registry (to the extent that it is very unlikely that any subtags 2191 will be registered of this type). 2193 o Dialect or other divisions or variations within a language, its 2194 orthography, writing system, regional or historical usage, 2195 transliteration or other transformation, or distinguishing 2196 variation MAY be registered as variant subtags. An example is the 2197 'rozaj' subtag (the Resian dialect of Slovenian). 2199 o The addition or maintenance of fields (generally of an 2200 informational nature) in Tag or Subtag records as described in 2201 Section 3.1 and subject to the stability provisions in 2202 Section 3.4. This includes Description, Comments, Deprecated and 2203 Preferred-Value fields for obsolete or withdrawn codes, or the 2204 addition of Suppress-Script or Macrolanguage fields to primary 2205 language subtags, as well as other changes permitted by this 2206 document, such as the addition of an appropriate Prefix field to a 2207 variant subtag. 2209 o The addition of records and related field value changes necessary 2210 to reflect assignments made by ISO 639, ISO 15924, ISO 3166-1, and 2211 UN M.49 as described in Section 3.4. 2213 Subtags proposed for registration that would cause all or part of a 2214 grandfathered tag to become redundant but whose meaning conflicts 2215 with or alters the meaning of the grandfathered tag MUST be rejected. 2217 This document leaves the decision on what subtags or changes to 2218 subtags are appropriate (or not) to the registration process 2219 described in Section 3.5. 2221 Note: four-character primary language subtags are reserved to allow 2222 for the possibility of alpha4 codes in some future addition to the 2223 ISO 639 family of standards. 2225 ISO 639 defines a registration authority for additions to and changes 2226 in the list of languages in ISO 639. This agency is: 2228 International Information Centre for Terminology (Infoterm) 2229 Aichholzgasse 6/12, AT-1120 2230 Wien, Austria 2231 Phone: +43 1 26 75 35 Ext. 312 Fax: +43 1 216 32 72 2233 ISO 639-2 defines a registration authority for additions to and 2234 changes in the list of languages in ISO 639-2. This agency is: 2236 Library of Congress 2237 Network Development and MARC Standards Office 2238 Washington, D.C. 20540 USA 2239 Phone: +1 202 707 6237 Fax: +1 202 707 0115 2240 URL: http://www.loc.gov/standards/iso639-2 2242 ISO 639-3 defines a registration authority for additions to and 2243 changes in the list of languages in ISO 639-3. This agency is: 2245 SIL International 2246 ISO 639-3 Registrar 2247 7500 W. Camp Wisdom Rd. 2248 Dallas, TX 75236 USA 2249 Phone: +1 972 708 7400, ext. 2293 Fax: +1 972 708 7546 2250 Email: iso639-3@sil.org 2251 URL: http://www.sil.org/iso639-3 2253 ISO 639-5 defines a registration authority for additions to and 2254 changes in the list of languages in ISO 639-5. This agency is the 2255 same as for ISO 639-2 and is: 2257 Library of Congress 2258 Network Development and MARC Standards Office 2259 Washington, D.C. 20540 USA 2260 Phone: +1 202 707 6237 Fax: +1 202 707 0115 2261 URL: http://www.loc.gov/standards/iso639-5 2263 The maintenance agency for ISO 3166-1 (country codes) is: 2265 ISO 3166 Maintenance Agency 2266 c/o International Organization for Standardization 2267 Case postale 56 2268 CH-1211 Geneva 20 Switzerland 2269 Phone: +41 22 749 72 33 Fax: +41 22 749 73 49 2270 URL: http://www.iso.org/iso/en/prods-services/iso3166ma/index.html 2272 The registration authority for ISO 15924 (script codes) is: 2274 Unicode Consortium 2275 Box 391476 2276 Mountain View, CA 94039-1476, USA 2277 URL: http://www.unicode.org/iso15924 2279 The Statistics Division of the United Nations Secretariat maintains 2280 the Standard Country or Area Codes for Statistical Use and can be 2281 reached at: 2283 Statistical Services Branch 2284 Statistics Division 2285 United Nations, Room DC2-1620 2286 New York, NY 10017, USA 2288 Fax: +1-212-963-0623 2289 E-mail: statistics@un.org 2290 URL: http://unstats.un.org/unsd/methods/m49/m49alpha.htm 2292 3.7. Extensions and the Extensions Registry 2294 Extension subtags are those introduced by single-character subtags 2295 ("singletons") other than 'x'. They are reserved for the generation 2296 of identifiers that contain a language component and are compatible 2297 with applications that understand language tags. 2299 The structure and form of extensions are defined by this document so 2300 that implementations can be created that are forward compatible with 2301 applications that might be created using singletons in the future. 2302 In addition, defining a mechanism for maintaining singletons will 2303 lend stability to this document by reducing the likely need for 2304 future revisions or updates. 2306 Single-character subtags are assigned by IANA using the "IETF 2307 Consensus" policy defined by [RFC2434]. This policy requires the 2308 development of an RFC, which SHALL define the name, purpose, 2309 processes, and procedures for maintaining the subtags. The 2310 maintaining or registering authority, including name, contact email, 2311 discussion list email, and URL location of the registry, MUST be 2312 indicated clearly in the RFC. The RFC MUST specify or include each 2313 of the following: 2315 o The specification MUST reference the specific version or revision 2316 of this document that governs its creation and MUST reference this 2317 section of this document. 2319 o The specification and all subtags defined by the specification 2320 MUST follow the ABNF and other rules for the formation of tags and 2321 subtags as defined in this document. In particular, it MUST 2322 specify that case is not significant and that subtags MUST NOT 2323 exceed eight characters in length. 2325 o The specification MUST specify a canonical representation. 2327 o The specification of valid subtags MUST be available over the 2328 Internet and at no cost. 2330 o The specification MUST be in the public domain or available via a 2331 royalty-free license acceptable to the IETF and specified in the 2332 RFC. 2334 o The specification MUST be versioned, and each version of the 2335 specification MUST be numbered, dated, and stable. 2337 o The specification MUST be stable. That is, extension subtags, 2338 once defined by a specification, MUST NOT be retracted or change 2339 in meaning in any substantial way. 2341 o The specification MUST include in a separate section the 2342 registration form reproduced in this section (below) to be used in 2343 registering the extension upon publication as an RFC. 2345 o IANA MUST be informed of changes to the contact information and 2346 URL for the specification. 2348 IANA will maintain a registry of allocated single-character 2349 (singleton) subtags. This registry MUST use the record-jar format 2350 described by the ABNF in Section 3.1. Upon publication of an 2351 extension as an RFC, the maintaining authority defined in the RFC 2352 MUST forward this registration form to iesg@ietf.org, who MUST 2353 forward the request to iana@iana.org. The maintaining authority of 2354 the extension MUST maintain the accuracy of the record by sending an 2355 updated full copy of the record to iana@iana.org with the subject 2356 line "LANGUAGE TAG EXTENSION UPDATE" whenever content changes. Only 2357 the 'Comments', 'Contact_Email', 'Mailing_List', and 'URL' fields MAY 2358 be modified in these updates. 2360 Failure to maintain this record, maintain the corresponding registry, 2361 or meet other conditions imposed by this section of this document MAY 2362 be appealed to the IESG [RFC2028] under the same rules as other IETF 2363 decisions (see [RFC2026]) and MAY result in the authority to maintain 2364 the extension being withdrawn or reassigned by the IESG. 2365 %% 2366 Identifier: 2367 Description: 2368 Comments: 2369 Added: 2370 RFC: 2371 Authority: 2372 Contact_Email: 2373 Mailing_List: 2374 URL: 2375 %% 2377 Figure 6: Format of Records in the Language Tag Extensions Registry 2379 'Identifier' contains the single-character subtag (singleton) 2380 assigned to the extension. The Internet-Draft submitted to define 2381 the extension SHOULD specify which letter or digit to use, although 2382 the IESG MAY change the assignment when approving the RFC. 2384 'Description' contains the name and description of the extension. 2386 'Comments' is an OPTIONAL field and MAY contain a broader description 2387 of the extension. 2389 'Added' contains the date the extension's RFC was published in the 2390 "full-date" format specified in [RFC3339]. For example: 2004-06-28 2391 represents June 28, 2004, in the Gregorian calendar. 2393 'RFC' contains the RFC number assigned to the extension. 2395 'Authority' contains the name of the maintaining authority for the 2396 extension. 2398 'Contact_Email' contains the email address used to contact the 2399 maintaining authority. 2401 'Mailing_List' contains the URL or subscription email address of the 2402 mailing list used by the maintaining authority. 2404 'URL' contains the URL of the registry for this extension. 2406 The determination of whether an Internet-Draft meets the above 2407 conditions and the decision to grant or withhold such authority rests 2408 solely with the IESG and is subject to the normal review and appeals 2409 process associated with the RFC process. 2411 Extension authors are strongly cautioned that many (including most 2412 well-formed) processors will be unaware of any special relationships 2413 or meaning inherent in the order of extension subtags. Extension 2414 authors SHOULD avoid subtag relationships or canonicalization 2415 mechanisms that interfere with matching or with length restrictions 2416 that sometimes exist in common protocols where the extension is used. 2417 In particular, applications MAY truncate the subtags in doing 2418 matching or in fitting into limited lengths, so it is RECOMMENDED 2419 that the most significant information be in the most significant 2420 (left-most) subtags and that the specification gracefully handle 2421 truncated subtags. 2423 When a language tag is to be used in a specific, known, protocol, it 2424 is RECOMMENDED that the language tag not contain extensions not 2425 supported by that protocol. In addition, note that some protocols 2426 MAY impose upper limits on the length of the strings used to store or 2427 transport the language tag. 2429 3.8. Update of the Language Subtag Registry 2431 Upon adoption of this document the IANA Language Subtag Registry will 2432 need an update so that it contains the complete set of subtags valid 2433 in a language tag. This collection of subtags, along with a 2434 description of the process used to create it, is described by 2435 [draft-4645bis]. IANA will publish the updated version of the 2436 registry described by this document using the instructions and 2437 content of [draft-4645bis]. Once published by IANA, the maintenance 2438 procedures, rules, and registration processes described in this 2439 document will be available for new registrations or updates. 2441 Registrations that are in process under the rules defined in 2442 [RFC4646] when this document is adopted MUST be completed under the 2443 rules contained in this document. 2445 4. Formation and Processing of Language Tags 2447 This section addresses how to use the information in the registry 2448 with the tag syntax to choose, form, and process language tags. 2450 4.1. Choice of Language Tag 2452 The guiding principle in forming language tags is to "tag content 2453 wisely." Sometimes there is a choice between several possible tags 2454 for the same content. The choice of which tag to use depends on the 2455 content and application in question and some amount of judgment might 2456 be necessary when selecting a tag. 2458 Interoperability is best served when the same language tag is used 2459 consistently to represent the same language. If an application has 2460 requirements that make the rules here inapplicable, then that 2461 application risks damaging interoperability. It is strongly 2462 RECOMMENDED that users not define their own rules for language tag 2463 choice. 2465 Standards, protocols, and applications that reference this document 2466 normatively but apply different rules to the ones given in this 2467 section MUST specify how language tag selection varies from the 2468 guidelines given here. 2470 To ensure consistent backward compatibility, this document contains 2471 several provisions to account for potential instability in the 2472 standards used to define the subtags that make up language tags. 2473 These provisions mean that no valid language tag can become invalid, 2474 nor will a language tag have a narrower scope in the future (it may 2475 have a broader scope). The most appropriate language tag for a given 2476 application or content item might evolve over time, but once applied, 2477 the tag itself cannot become invalid or have its meaning wholly 2478 change. 2480 A subtag SHOULD only be used when it adds useful distinguishing 2481 information to the tag. Extraneous subtags interfere with the 2482 meaning, understanding, and processing of language tags. In 2483 particular, users and implementations SHOULD follow the 'Prefix' and 2484 'Suppress-Script' fields in the registry (defined in Section 3.1): 2485 these fields provide guidance on when specific additional subtags 2486 SHOULD be used or avoided in a language tag. 2488 The choice of subtags used to form a language tag SHOULD follow these 2489 guidelines: 2491 1. Use as precise a tag as possible, but no more specific than is 2492 justified. Avoid using subtags that are not important for 2493 distinguishing content in an application. 2495 * For example, 'de' might suffice for tagging an email written 2496 in German, while "de-CH-1996" is probably unnecessarily 2497 precise for such a task. 2499 * Note that some subtag sequences might not represent the 2500 language a casual user might expect, especially if when 2501 relying on the subtag's description in the registry. For 2502 example, the Swiss German (Schweizerdeutsch) language is 2503 represented by "gsw-CH" and not by "de-CH". This latter tag 2504 represents German ('de') as used in Switzerland ('CH'), also 2505 known as Swiss High German (Schweizer Hochdeutsch). Both are 2506 real languages and distinguishing between them could be 2507 important to an application. 2509 2. The script subtag SHOULD NOT be used to form language tags unless 2510 the script adds some distinguishing information to the tag. 2511 Script subtags were first formally defined in BCP 47 by 2512 [RFC4646]. Their use can affect matching and subtag 2513 identification for implementations of previous versions of BCP 47 2514 (i.e. [RFC1766] or [RFC3066]), as these subtags appear between 2515 the primary language and region subtags. Some applications can 2516 benefit from the use of script subtags in language tags, as long 2517 as the use is consistent for a given context. Script subtags are 2518 never appropriate for unwritten content (such as audio 2519 recordings). The field 'Suppress-Script' in the primary or 2520 extended language record in the registry indicates script subtags 2521 that do not add distinguishing information for most applications; 2522 this field defines when users SHOULD NOT include a script subtag 2523 with a particular primary language subtag. 2525 For example, if an implementation selects content using Basic 2526 Filtering [RFC4647] (originally described in Section 2.5 of 2527 [RFC3066]) and the user requested the language range "en-US", 2528 content labeled "en-Latn-US" will not match the request and thus 2529 not be selected. Therefore, it is important to know when script 2530 subtags will customarily be used and when they ought not be used. 2532 For example: 2534 * The subtag 'Latn' should not be used with the primary language 2535 'en' because nearly all English documents are written in the 2536 Latin script and it adds no distinguishing information. 2537 However, if a document were written in English mixing Latin 2538 script with another script such as Braille ('Brai'), then it 2539 might be appropriate to choose to indicate both scripts to aid 2540 in content selection, such as the application of a style 2541 sheet. 2543 * When labeling content that is unwritten (such as a recording 2544 of human speech), the script subtag should not be used, even 2545 if the language is customarily written in several scripts. 2546 Thus the subtitles to a movie might use the tag "uz-Arab" 2547 (Uzbek, Arabic script), but the audio track for the same 2548 language would be tagged simply "uz". (The tag "uz-Zxxx" 2549 could also be used where content is not written, as the subtag 2550 'Zxxx' represents the "Code for unwritten documents".) 2552 3. If a tag or subtag has a 'Preferred-Value' field in its registry 2553 entry, then the value of that field SHOULD be used to form the 2554 language tag in preference to the tag or subtag in which the 2555 preferred value appears. 2557 * For example, use 'jbo' for Lojban in preference to the 2558 grandfathered tag "art-lojban". 2560 4. Use subtags or sequences of subtags for individual languages in 2561 preference to subtags for language collections. A "language 2562 collection" is a group of languages that are descended from a 2563 common ancestor, are spoken in the same geographical area, or are 2564 otherwise related. Certain language collections are assigned 2565 codes by [ISO639-5] (and some of these [ISO639-5] codes are also 2566 defined as collections in [ISO639-2]). These codes are included 2567 as primary language subtags in the registry. Subtags for a 2568 language collection in the registry have a 'Scope' field with a 2569 value of 'collection'. A subtag for a language collection is 2570 always preferred to less-specific alternatives such as 'mul' and 2571 'und' (see below) and a subtag representing a language collection 2572 MAY be used when more specific language information is not 2573 available. However, most users and implementations do not know 2574 there is a relationship between the collection and its individual 2575 languages. In addition, the relationship between the individual 2576 languages in the collection is not well defined; in particular, 2577 the languages are usually not mutually intelligible. Since the 2578 subtags are different, a request for the collection will 2579 typically only produce items tagged with the collection's subtag, 2580 not items tagged with subtags for the individual languages 2581 contained in the collection. 2583 For example: 2585 1. Collections are interpreted inclusively, so the subtag 'gem' 2586 (Germanic languages) could, but SHOULD NOT, be used with 2587 content that would be better tagged with "en" (English), "de" 2588 (German), or "gsw" (Swiss German, Alemannic). While 'gem' 2589 collects all of these (and other) languages, most 2590 implementations will not match 'gem' to the individual 2591 languages; thus using the subtag will not produce the desired 2592 result. 2594 5. [ISO639-2] has defined several codes included in the subtag 2595 registry that require additional care when choosing language 2596 tags. In most of these cases, where omitting the language tag is 2597 permitted, such omission is preferable to using these codes. 2598 Language tags SHOULD NOT incorporate these subtags as a prefix, 2599 unless the additional information conveys some value to the 2600 application. 2602 * The 'mul' (Multiple) primary language subtag identifies 2603 content in multiple languages. This subtag SHOULD NOT be used 2604 when a list of languages or individual tags for each content 2605 element can be used instead. For example, the 'Content- 2606 Language' header ([RFC3282]) allows a list of languages to be 2607 used, not just a single language tag. 2609 * The 'und' (Undetermined) primary language subtag identifies 2610 linguistic content whose language is not determined. This 2611 subtag SHOULD NOT be used unless a language tag is required 2612 and language information is not available or cannot be 2613 determined. Omitting the language tag (where permitted) is 2614 preferred. The 'und' subtag might be useful for protocols 2615 that require a language tag to be provided or where a primary 2616 language subtag is required (such as in "und-Latn"). The 2617 'und' subtag MAY also be useful when matching language tags in 2618 certain situations. 2620 * The 'zxx' (Non-Linguistic, Not Applicable) primary language 2621 subtag identifies content for which a language classification 2622 is inappropriate or does not apply. Some examples might 2623 include instrumental or electronic music; sound recordings 2624 consisting of nonverbal sounds; audiovisual materials with no 2625 narration, dialog, printed titles, or subtitles; machine- 2626 readable data files consisting of machine languages or 2627 character codes; or programming source code. 2629 * The 'mis' (Uncoded) primary language subtag identifies content 2630 whose language is known but which does not currently have a 2631 corresponding subtag. This subtag SHOULD NOT be used. 2632 Because the addition of other codes in the future can render 2633 its application invalid, it is inherently unstable and hence 2634 incompatible with the stability goals of BCP 47. It is always 2635 preferable to use other subtags: either 'und' or (with prior 2636 agreement) private use subtags. 2638 6. Use variant subtags sparingly and in the correct order. Most 2639 variant subtags have one or more 'Prefix' fields in the registry 2640 that express the list of subtags that they are appropriate with. 2641 Variants SHOULD only be used with subtags that appear in one of 2642 these 'Prefix' fields. If a variant lists a second variant in 2643 one of its 'Prefix' fields, the first variant SHOULD appear 2644 directly after the second variant in any language tag where both 2645 occur. General purpose variants (those with no 'Prefix' fields 2646 at all) SHOULD appear after any other variant subtags. Order any 2647 remaining variants by placing the most significant subtag first. 2648 If none of the subtags is more significant or no relationship can 2649 be determined, alphabetize the subtags. Because variants are 2650 very specialized, using many of them together generally makes the 2651 tag so narrow as to override the additional precision gained. 2652 Putting the subtags into another order interferes with 2653 interoperability, as well as the overall interpretation of the 2654 tag. 2656 A. For example, the tag "en-scottish-fonipa" (English, Scottish 2657 dialect, IPA phonetic transcription) is correctly ordered 2658 because 'scottish' has a 'Prefix' of "en", while 'fonipa' has 2659 no 'Prefix' field. 2661 B. For example, the tag "sl-IT-rozaj-biske-1994" is correctly 2662 ordered: 'rozaj' lists "sl" as its sole 'Prefix'; 'biske' 2663 lists "sl-rozaj" as its sole Prefix. The subtag '1994' has 2664 several prefixes, including "sl-rozaj". However, it follows 2665 both 'rozaj' and 'biske' because one of its 'Prefix' fields 2666 is "sl-rozaj-biske". 2668 7. The grandfathered tag "i-default" (Default Language) was 2669 originally registered according to [RFC1766] to meet the needs of 2670 [RFC2277]. It is used to indicate not a specific language, but 2671 rather, it identifies the condition or content used where the 2672 language preferences of the user cannot be established. It 2673 SHOULD NOT be used except as a means of labeling the default 2674 content for applications or protocols that require default 2675 language content to be labeled with that specific tag. It MAY 2676 also be used by an application or protocol to identify when the 2677 default language content is being returned. 2679 4.1.1. Tagging Encompassed Languages 2681 Some primary language records in the registry have a "Macrolanguage" 2682 field (Section 3.1.10) that contains a mapping from each "encompassed 2683 language" to its macrolanguage. The Macrolanguage mapping doesn't 2684 define what the relationship between the encompassed language and its 2685 macrolanguage is, nor does it define how languages encompassed by the 2686 same macrolanguage are related to each other. Two different 2687 languages encompassed by the same macrolanguage may differ from one 2688 another more than say, French and Spanish do. 2690 A few specific macrolanguages, such as Chinese ('zh') and Arabic 2691 ('ar'), are handled differently. See Section 4.1.2. 2693 The more specific encompassed language subtag SHOULD be used to form 2694 the language tag, although either the macrolanguage's primary 2695 language subtag or the encompassed language's subtag MAY be used. 2696 This means, for example, tagging Plains Cree with 'crk' rather than 2697 'cre' (Cree); and so forth. 2699 Each macrolanguage subtag's scope, by definition, includes all of its 2700 encompassed languages. Since the relationship between encompassed 2701 languages varies, users cannot assume that the macrolanguage subtag 2702 means any particular encompassed language nor that any given pair of 2703 encompassed languages are mutually intelligible or otherwise 2704 interchangeable. 2706 Applications MAY use macrolanguage information to improve matching or 2707 language negotiation. For example, the information that 'sr' 2708 (Serbian) and 'hr' (Croatian) share a macrolanguage expresses a 2709 closer relation between those languages than between, say, 'sr' 2710 (Serbian) and 'ma' (Macedonian). However, this relationship is not 2711 guaranteed nor is it exclusive. For example, Romanian ('ro') and 2712 Moldavian ('mo') do not share a macrolanguage, but are far more 2713 closely related to each other than Cantonese ('yue') and Wu ('wuu') , 2714 which do share a macrolanguage. 2716 4.1.2. Using Extended Language Subtags 2718 To accommodate language tag forms used prior to the adoption of this 2719 document, language tags provide a special compatibility mechanism: 2720 the extended language subtag. Selected languages have been provided 2721 with both primary and extended language subtags. These include 2722 macrolanguages, such as Malay ('ms') and Uzbek ('uz'), that have a 2723 specific dominant variety that is generally synonymous with the 2724 macrolanguage. Other languages, such as the Chinese ('zh') and 2725 Arabic ('ar') macrolanguages and the various sign languages ('sgn'), 2726 have traditionally used their primary language subtag, possibly 2727 coupled with various region subtags or as part of a registered 2728 grandfathered tag, to indicate the language. 2730 With the adoption of this document, specific ISO 639-3 subtags became 2731 available to identify the languages contained within these diverse 2732 language families or groupings. This presents a choice of language 2733 tags where previously none existed: 2735 o Each encompassed language's subtag SHOULD be used as the primary 2736 language subtag. For example, a document in Mandarin Chinese 2737 would be tagged "cmn" (the subtag for Mandarin Chinese) in 2738 preference to "zh" (Chinese). 2740 o If compatibility is desired or needed, the encompassed subtag MAY 2741 be used as an extended language subtag. For example, a document 2742 in Mandarin Chinese could be tagged "zh-cmn" instead of either 2743 "cmn" or "zh". 2745 o The macrolanguage or prefixing subtag MAY still be used to form 2746 the tag instead of the more specific encompassed language subtag. 2747 That is, tags such as "zh-HK" or "sgn-RU" are still valid. 2749 Chinese ('zh') provides a useful illustration of this. In the past, 2750 various content has used tags beginning with the 'zh' subtag, with 2751 application specific meaning being associated with region codes, 2752 private-use sequences, or grandfathered registered values. This is 2753 because historically only the macrolanguage subtag 'zh' was available 2754 for forming language tags. However, the languages encompassed by the 2755 Chinese subtag 'zh' are, in the main, not mutually intelligible when 2756 spoken, and the written forms of these languages also show wide 2757 variation in form and usage. 2759 To provide compatibility, Chinese languages encompassed by the 'zh' 2760 subtag are in the registry as both primary language subtags and as 2761 extended language subtags. For example, the ISO 639-3 code for 2762 Cantonese is 'yue'. Content in Cantonese might historically have 2763 used a tag such as "zh-HK" (since Cantonese is commonly spoken in 2764 Hong Kong), although that tag actually means any type of Chinese as 2765 used in Hong Kong. With the availability of ISO 639-3 codes in the 2766 registry, content in Cantonese can be directly tagged using the 'yue' 2767 subtag. The content can use it as a primary language subtag, as in 2768 the tag "yue-HK" (Cantonese, Hong Kong). Or it can use an extended 2769 language subtag with 'zh', as in the tag "zh-yue-Hant" (Chinese, 2770 Cantonese, Traditional script). 2772 As noted above, applications can choose to use the macrolanguage 2773 subtag to form the tag instead of using the more specific encompassed 2774 language subtag. For example, an application with large quantities 2775 of data already using tags with the 'zh' (Chinese) subtag might 2776 continue to use this more general subtag even for new data, even 2777 though the content could be more precisely tagged with 'cmn' 2778 (Mandarin), 'yue' (Cantonese), 'wuu' (Wu), and so on. Similarly, an 2779 application already using tags that start with the 'ar' (Arabic) 2780 subtag might continue to use this more general subtag even for new 2781 data, which could be more precisely be tagged with 'arb' (Standard 2782 Arabic). 2784 In some cases, the encompassed languages had tags registered for them 2785 during the RFC 3066 era. Those grandfathered tags not already 2786 deprecated or rendered redundant were deprecated in the registry upon 2787 adoption of this document. As grandfathered values, they remain 2788 valid for use and some content or applications might use them. As 2789 with other grandfathered tags, since implementations might not be 2790 able to associate the grandfathered tags with the encompassed 2791 language subtag equivalents that are recommended by this document, 2792 implementations are encouraged to canonicalize tags for comparison 2793 purposes. Some examples of this include the tags "zh-hakka" (Hakka) 2794 and "zh-guoyu" (Mandarin or Standard Chinese). 2796 Sign languages share a mode of communication rather than a linguistic 2797 heritage. There are many sign languages which have developed 2798 independently and the subtag 'sgn' indicates only the presence of a 2799 sign language. A number of sign languages also had grandfathered 2800 tags registered for them during the RFC 3066 era. For example, the 2801 grandfathered tag "sgn-US" was registered to represent 'American Sign 2802 Language' specifically, without reference to the United States. This 2803 is still valid, but deprecated: a document in American Sign Language 2804 can be labeled either "ase" or "sgn-ase" (the 'ase' subtag is for the 2805 language called 'American Sign Language'). 2807 4.2. Meaning of the Language Tag 2809 The meaning of a language tag is related to the meaning of the 2810 subtags that it contains. Each subtag, in turn, implies a certain 2811 range of expectations one might have for related content, although it 2812 is not a guarantee. For example, the use of a script subtag such as 2813 'Arab' (Arabic script) does not mean that the content contains only 2814 Arabic characters. It does mean that the language involved is 2815 predominantly in the Arabic script. Thus a language tag and its 2816 subtags can encompass a very wide range of variation and yet remain 2817 appropriate in each particular instance. 2819 Validity of a tag is not the only factor determining its usefulness. 2820 While every valid tag has a meaning, it might not represent any real- 2821 world language usage. This is unavoidable in a system in which 2822 subtags can be combined freely. For example, tags such as 2823 "ar-Cyrl-CO" (Arabic, Cyrillic script, as used in Colombia) or "tlh- 2824 Kore-AQ-fonipa" (Klingon, Korean script, as used in Antarctica, IPA 2825 phonetic transcription) are both valid and unlikely to represent a 2826 useful combination of language attributes. 2828 The meaning of a given tag doesn't depend on the context in which it 2829 appears. The relationship between a tag's meaning and the 2830 information objects to which that tag is applied, however, can vary. 2832 o For a single information object, the associated language tags 2833 might be interpreted as the set of languages that is necessary for 2834 a complete comprehension of the complete object. Example: Plain 2835 text documents. 2837 o For an aggregation of information objects, the associated language 2838 tags could be taken as the set of languages used inside components 2839 of that aggregation. Examples: Document stores and libraries. 2841 o For information objects whose purpose is to provide alternatives, 2842 the associated language tags could be regarded as a hint that the 2843 content is provided in several languages and that one has to 2844 inspect each of the alternatives in order to find its language or 2845 languages. In this case, the presence of multiple tags might not 2846 mean that one needs to be multi-lingual to get complete 2847 understanding of the document. Example: MIME multipart/ 2848 alternative. 2850 o For markup languages, such as HTML and XML, language information 2851 can be added to each part of the document identified by the markup 2852 structure (including the whole document itself). For example, one 2853 could write C'est la vie. inside a German 2854 document; the German-speaking user could then access a French- 2855 German dictionary to find out what the marked section meant. If 2856 the user were listening to that document through a speech 2857 synthesis interface, this formation could be used to signal the 2858 synthesizer to appropriately apply French text-to-speech 2859 pronunciation rules to that span of text, instead of applying the 2860 inappropriate German rules. 2862 o For markup languages and document formats that allow the audience 2863 to be identified, a language tag could indicate the audience(s) 2864 appropriate for that document. For example, the same HTML 2865 document described in the preceding bullet might have an HTTP 2866 header "Content-Language: de" to indicate that the intended 2867 audience for the file is German (even though three words appear 2868 and are identified as being in French within it). 2870 o For systems and APIs, language tags form the basis for most 2871 implementations of locale identifiers. For example, see Unicode's 2872 CLDR (Common Locale Data Repository) (see: UTS #35 [UTS35]) 2873 project. 2875 Language tags are related when they contain a similar sequence of 2876 subtags. For example, if a language tag B contains language tag A as 2877 a prefix, then B is typically "narrower" or "more specific" than A. 2878 Thus, "zh-Hant-TW" is more specific than "zh-Hant". 2880 This relationship is not guaranteed in all cases: specifically, 2881 languages that begin with the same sequence of subtags are NOT 2882 guaranteed to be mutually intelligible, although they might be. For 2883 example, the tag "az" shares a prefix with both "az-Latn" 2884 (Azerbaijani written using the Latin script) and "az-Cyrl" 2885 (Azerbaijani written using the Cyrillic script). A person fluent in 2886 one script might not be able to read the other, even though the 2887 linguistic content (e.g., what would be heard if both texts were read 2888 aloud) might be identical. Content tagged as "az" most probably is 2889 written in just one script and thus might not be intelligible to a 2890 reader familiar with the other script. 2892 Similarly, not all subtags specify an actual distinction in language. 2893 For example, the tags "en-US" and "en-CA" mean, roughly, English with 2894 features generally thought to be characteristic of the United States 2895 and Canada, respectively. They do not imply that a significant 2896 dialectical boundary exists between any arbitrarily selected point in 2897 the United States and any arbitrarily selected point in Canada. 2898 Neither does a particular region subtag imply that linguistic 2899 distinctions do not exist within that region. 2901 4.3. Lists of Languages 2903 In some applications, a single content item might best be associated 2904 with more than one language tag. Examples of such a usage include: 2906 o A language priority list [RFC4647] describing a user's language 2907 preferences. This is a (possibly weighted) list of potentially- 2908 unrelated varieties, expressing a preference, rather than as a 2909 declaration about actual content. 2911 o Content items that contain multiple, distinct varieties. Often 2912 this is used to indicate an appropriate audience for a given 2913 content item when multiple choices might be appropriate. Examples 2914 of this could include: 2916 * Metadata about the appropriate audience for a movie title. For 2917 example, a DVD might label its individual audio tracks 'de' 2918 (German), 'fr' (French), and 'es' (Spanish), but the overall 2919 title would list "de, fr, es" as its overall audience. 2921 * A French/English, English/French dictionary tagged as both "en" 2922 and "fr" to specify that it applies equally to French and 2923 English 2925 * A side-by-side or interlinear translation of a document, as is 2926 commonly done with classical works in Latin or Greek 2928 o Content items that contain a single language but which require 2929 multiple levels of specificity. For example, a library might wish 2930 to classify a particular work as both Norwegian ('no') and as 2931 Nynorsk ('nn') for audiences capable of appreciating the 2932 distinction or needing to select content more narrowly. 2934 4.4. Length Considerations 2936 There is no defined upper limit on the size of language tags. While 2937 historically most language tags have consisted of language and region 2938 subtags with a combined total length of up to six characters, larger 2939 tags have always been both possible and have actually appeared in 2940 use. 2942 Neither the language tag syntax nor other requirements in this 2943 document impose a fixed upper limit on the number of subtags in a 2944 language tag (and thus an upper bound on the size of a tag). The 2945 language tag syntax suggests that, depending on the specific 2946 language, more subtags (and thus a longer tag) are sometimes 2947 necessary to completely identify the language for certain 2948 applications; thus, it is possible to envision long or complex subtag 2949 sequences. 2951 4.4.1. Working with Limited Buffer Sizes 2953 Some applications and protocols are forced to allocate fixed buffer 2954 sizes or otherwise limit the length of a language tag. A conformant 2955 implementation or specification MAY refuse to support the storage of 2956 language tags that exceed a specified length. Any such limitation 2957 SHOULD be clearly documented, and such documentation SHOULD include 2958 what happens to longer tags (for example, whether an error value is 2959 generated or the language tag is truncated). A protocol that allows 2960 tags to be truncated at an arbitrary limit, without giving any 2961 indication of what that limit is, has the potential for causing harm 2962 by changing the meaning of tags in substantial ways. 2964 In practice, most language tags do not require more than a few 2965 subtags and will not approach reasonably sized buffer limitations; 2966 see Section 4.1. 2968 Some specifications or protocols have limits on tag length but do not 2969 have a fixed length limitation. For example, [RFC2231] has no 2970 explicit length limitation: the length available for the language tag 2971 is constrained by the length of other header components (such as the 2972 charset's name) coupled with the 76-character limit in [RFC2047]. 2973 Thus, the "limit" might be 50 or more characters, but it could 2974 potentially be quite small. 2976 The considerations for assigning a buffer limit are: 2978 Implementations SHOULD NOT truncate language tags unless the 2979 meaning of the tag is purposefully being changed, or unless the 2980 tag does not fit into a limited buffer size specified by a 2981 protocol for storage or transmission. 2983 Implementations SHOULD warn the user when a tag is truncated since 2984 truncation changes the semantic meaning of the tag. 2986 Implementations of protocols or specifications that are space 2987 constrained but do not have a fixed limit SHOULD use the longest 2988 possible tag in preference to truncation. 2990 Protocols or specifications that specify limited buffer sizes for 2991 language tags MUST allow for language tags of at least 35 2992 characters. Note that RFC 4646 [RFC4646] recommended a minimum 2993 field size of 42 characters because it included all three elements 2994 of the 'extlang' production. Two of these are now permanently 2995 reserved, so a registered primary language subtag of the maximum 2996 length of eight characters is now longer than the longest 2997 language-extlang combination. Protocols or specifications that 2998 commonly use extensions or private use subtags might wish to 2999 reserve or recommend a longer "minimum buffer" size. 3001 The following illustration shows how the 35-character recommendation 3002 was derived: 3004 language = 8 ; longest allowed registered value 3005 ; longer than primary+extlang 3006 ; which requires 7 characters 3007 script = 5 ; if not suppressed: see Section 4.1 3008 region = 4 ; UN M.49 numeric region code 3009 ; ISO 3166-1 codes require 3 3010 variant1 = 9 ; needs 'language' as a prefix 3011 variant2 = 9 ; very rare, as it needs 3012 ; 'language-variant1' as a prefix 3014 total = 35 characters 3016 Figure 7: Derivation of the Limit on Tag Length 3018 4.4.2. Truncation of Language Tags 3020 Truncation of a language tag alters the meaning of the tag, and thus 3021 SHOULD be avoided. However, truncation of language tags is sometimes 3022 necessary due to limited buffer sizes. Such truncation MUST NOT 3023 permit a subtag to be chopped off in the middle or the formation of 3024 invalid tags (for example, one ending with the "-" character). 3026 This means that applications or protocols that truncate tags MUST do 3027 so by progressively removing subtags along with their preceding "-" 3028 from the right side of the language tag until the tag is short enough 3029 for the given buffer. If the resulting tag ends with a single- 3030 character subtag, that subtag and its preceding "-" MUST also be 3031 removed. For example: 3033 Tag to truncate: zh-Latn-CN-variant1-a-extend1-x-wadegile-private1 3034 1. zh-Latn-CN-variant1-a-extend1-x-wadegile 3035 2. zh-Latn-CN-variant1-a-extend1 3036 3. zh-Latn-CN-variant1 3037 4. zh-Latn-CN 3038 5. zh-Latn 3039 6. zh 3041 Figure 8: Example of Tag Truncation 3043 4.5. Canonicalization of Language Tags 3045 Since a particular language tag is sometimes used by many processes, 3046 language tags SHOULD always be created or generated in a canonical 3047 form. 3049 A language tag is in canonical form when: 3051 1. The tag is well-formed according the rules in Section 2.1 and 3052 Section 2.2. 3054 2. Redundant or grandfathered tags that have a Preferred-Value 3055 mapping in the IANA registry (see Section 3.1) MUST be replaced 3056 with their mapped value. These items either are deprecated 3057 mappings created before the adoption of this document (such as 3058 the mapping of "no-nyn" to "nn" or "i-klingon" to "tlh") or are 3059 the result of later registrations or additions to this document 3060 (for example, "zh-hakka" was deprecated in favor of the ISO 639-3 3061 code 'hak' when this document was adopted). These mappings 3062 SHOULD be done before additional processing, since there can be 3063 additional changes to subtag values. These field-body of the 3064 Preferred-Value for grandfathered and redundant tags is an 3065 "extended language range" ([RFC4647]) and might consist of more 3066 than one subtag. 3068 3. Subtags of type 'extlang' SHOULD be mapped to their Preferred- 3069 Value. The field-body of the Preferred-Value for extlangs is an 3070 "extended language range" and typically maps to a primary 3071 language subtag. For example, the subtag sequence "zh-hak" 3072 (Chinese, Hakka) would be replaced with the tag "hak" (Hakka). 3074 4. Other subtags that have a Preferred-Value field in the IANA 3075 registry (see Section 3.1) MUST be replaced with their mapped 3076 value. Most of these are either Region subtags where the country 3077 name or designation has changed or clerical corrections to ISO 3078 639-1. 3080 5. If more than one extension subtag sequence exists, the extension 3081 sequences are ordered into case-insensitive ASCII order by 3082 singleton subtag (that is, the subtag sequence '-a-babble' comes 3083 before '-b-warble'). 3085 Example: The language tag "en-a-aaa-b-ccc-bbb-x-xyz" is in canonical 3086 form, while "en-b-ccc-bbb-a-aaa-X-xyz" is well-formed and potentially 3087 valid (extensions 'a' and 'b' are not defined as of the publication 3088 of this document) but not in canonical form (the extensions are not 3089 in alphabetical order). 3091 Example: Although the tag "en-BU" (English as used in Burma) 3092 maintains its validity, the language tag "en-BU" is not canonical 3093 because the 'BU' subtag has a canonical mapping to 'MM' (Myanmar). 3095 Canonicalization of language tags does not imply anything about the 3096 use of upper or lowercase letters when processing or comparing 3097 subtags (and as described in Section 2.1). All comparisons MUST be 3098 performed in a case-insensitive manner. 3100 When performing canonicalization of language tags, processors MAY 3101 regularize the case of the subtags (that is, this process is 3102 OPTIONAL), following the case used in the registry (see 3103 Section 2.1.1). 3105 If more than one variant appears within a tag, processors MAY reorder 3106 the variants to obtain better matching behavior or more consistent 3107 presentation. Reordering of the variants SHOULD follow the 3108 recommendations for variant ordering in Section 4.1. 3110 If the field 'Deprecated' appears in a registry record without an 3111 accompanying 'Preferred-Value' field, then that tag or subtag is 3112 deprecated without a replacement. These values are canonical when 3113 they appear in a language tag. However, tags that include these 3114 values SHOULD NOT be selected by users or generated by 3115 implementations. 3117 An extension MUST define any relationships that exist between the 3118 various subtags in the extension and thus MAY define an alternate 3119 canonicalization scheme for the extension's subtags. Extensions MAY 3120 define how the order of the extension's subtags are interpreted. For 3121 example, an extension could define that its subtags are in canonical 3122 order when the subtags are placed into ASCII order: that is, "en-a- 3123 aaa-bbb-ccc" instead of "en-a-ccc-bbb-aaa". Another extension might 3124 define that the order of the subtags influences their semantic 3125 meaning (so that "en-b-ccc-bbb-aaa" has a different value from "en-b- 3126 aaa-bbb-ccc"). However, extension specifications SHOULD be designed 3127 so that they are tolerant of the typical processes described in 3128 Section 3.7. 3130 4.6. Considerations for Private Use Subtags 3132 Private use subtags, like all other subtags, MUST conform to the 3133 format and content constraints in the ABNF. Private use subtags have 3134 no meaning outside the private agreement between the parties that 3135 intend to use or exchange language tags that employ them. The same 3136 subtags MAY be used with a different meaning under a separate private 3137 agreement. They SHOULD NOT be used where alternatives exist and 3138 SHOULD NOT be used in content or protocols intended for general use. 3140 Private use subtags are simply useless for information exchange 3141 without prior arrangement. The value and semantic meaning of private 3142 use tags and of the subtags used within such a language tag are not 3143 defined by this document. 3145 Private use sequences introduced by the 'x' singleton are completely 3146 opaque to users or implementations outside of the private use 3147 agreement. So, in addition to private use subtag sequences 3148 introduced by the singleton subtag 'x', the Language Subtag Registry 3149 provides private use language, script, and region subtags derived 3150 from the private use codes assigned by the underlying standards. 3151 These subtags are valid for use in forming language tags; they are 3152 RECOMMENDED over the 'x' singleton private use subtag sequences 3153 because they convey more information via their linkage to the 3154 language tag's inherent structure. 3156 For example, the region subtags 'AA', 'ZZ', and in the ranges 3157 'QM'-'QZ' and 'XA'-'XZ' (derived from the ISO 3166-1 private use 3158 codes) can be used to form a language tag. A tag such as 3159 "zh-Hans-XQ" conveys a great deal of public, interchangeable 3160 information about the language material (that it is Chinese in the 3161 simplified Chinese script and is suitable for some geographic region 3162 'XQ'). While the precise geographic region is not known outside of 3163 private agreement, the tag conveys far more information than an 3164 opaque tag such as "x-somelang" or even "zh-Hans-x-xq" (where the 3165 'xq' subtag's meaning is entirely opaque). 3167 However, in some cases content tagged with private use subtags MAY 3168 interact with other systems in a different and possibly unsuitable 3169 manner compared to tags that use opaque, privately defined subtags, 3170 so the choice of the best approach sometimes depends on the 3171 particular domain in question. 3173 5. IANA Considerations 3175 This section deals with the processes and requirements necessary for 3176 IANA to undertake to maintain the subtag and extension registries as 3177 defined by this document and in accordance with the requirements of 3178 [RFC2434]. 3180 The impact on the IANA maintainers of the two registries defined by 3181 this document will be a small increase in the frequency of new 3182 entries or updates. IANA also is required to create a new mailing 3183 list (described below in Section 5.1) to announce registry changes 3184 and updates. 3186 5.1. Language Subtag Registry 3188 Upon adoption of this document, IANA will update the registry using 3189 instructions and content provided in a companion document: 3190 [draft-4645bis]. The criteria and process for selecting the updated 3191 set of records are described in that document. The updated set of 3192 records represents no impact on IANA, since the work to create it 3193 will be performed externally. 3195 Future work on the Language Subtag Registry includes the following 3196 activities: 3198 o Inserting or replacing whole records. These records are 3199 preformatted for IANA by the Language Subtag Reviewer, as 3200 described in Section 3.3. 3202 o Archiving and making publicly available the registration forms. 3204 o Announcing each updated version of the registry on the 3205 "ietf-languages-announcements@iana.org" mailing list. 3207 Each registration form sent to IANA contains a single record for 3208 incorporation into the registry. The form will be sent to 3209 "iana@iana.org" by the Language Subtag Reviewer. It will have a 3210 subject line indicating whether the enclosed form represents an 3211 insertion of a new record (indicated by the word "INSERT" in the 3212 subject line) or a replacement of an existing record (indicated by 3213 the word "MODIFY" in the subject line). At no time can a record be 3214 deleted from the registry. 3216 IANA will extract the record from the form and place the inserted or 3217 modified record into the appropriate section of the language subtag 3218 registry, grouping the records by their 'Type' field. Inserted 3219 records can be placed anywhere in the appropriate section; there is 3220 no guarantee of the order of the records beyond grouping them 3221 together by 'Type'. Modified records overwrite the record they 3222 replace. 3224 Whenever an entry is created or modified in the registry, the 'File- 3225 Date' record at the start of the registry is updated to reflect the 3226 most recent modification date in the [RFC3339] "full-date" format: 3227 included in any request to insert or modify records will be a new 3228 File-Date record indicating the acceptance date of the record. This 3229 record is to be placed first in the registry, replacing the existing 3230 File-Date record. In the event that the File-Date record present in 3231 the registry has a later date than the record being inserted or 3232 modified, then the latest (most recent) record will be preserved. 3233 IANA should attempt to process multiple registration requests in 3234 order according to the File-Date in the form, since one registration 3235 could otherwise cause a more recent change to be overwritten. 3237 The updated registry file MUST use the UTF-8 character encoding and 3238 IANA MUST check the registry file for proper encoding. Non-ASCII 3239 characters can be sent to IANA by attaching the registration form to 3240 the email message or by using various encodings in the mail message 3241 body (UTF-8 is recommended). IANA will verify any unclear or 3242 corrupted characters with the Language Subtag Reviewer prior to 3243 posting the updated registry. 3245 IANA will also archive and make publicly available from 3246 "http://www.iana.org/assignments/lang-subtags-templates/" each 3247 registration form. Note that multiple registrations can pertain to 3248 the same record in the registry. 3250 Developers who are dependent upon the language subtag registry 3251 sometimes would like to be informed of changes in the registry so 3252 that they can update their implementations. When any change is made 3253 to the language subtag registry, IANA will send an announcement 3254 message to "ietf-languages-announcements@iana.org" (a self- 3255 subscribing list that only IANA can post to). 3257 5.2. Extensions Registry 3259 The Language Tag Extensions Registry can contain at most 35 records 3260 and thus changes to this registry are expected to be very infrequent. 3262 Future work by IANA on the Language Tag Extensions Registry is 3263 limited to two cases. First, the IESG MAY request that new records 3264 be inserted into this registry from time to time. These requests 3265 MUST include the record to insert in the exact format described in 3266 Section 3.7. In addition, there MAY be occasional requests from the 3267 maintaining authority for a specific extension to update the contact 3268 information or URLs in the record. These requests MUST include the 3269 complete, updated record. IANA is not responsible for validating the 3270 information provided, only that it is properly formatted. IANA 3271 SHOULD take reasonable steps to ascertain that the request comes from 3272 the maintaining authority named in the record present in the 3273 registry. 3275 6. Security Considerations 3277 Language tags used in content negotiation, like any other information 3278 exchanged on the Internet, might be a source of concern because they 3279 might be used to infer the nationality of the sender, and thus 3280 identify potential targets for surveillance. 3282 This is a special case of the general problem that anything sent is 3283 visible to the receiving party and possibly to third parties as well. 3284 It is useful to be aware that such concerns can exist in some cases. 3286 The evaluation of the exact magnitude of the threat, and any possible 3287 countermeasures, is left to each application protocol (see BCP 72 3288 [RFC3552] for best current practice guidance on security threats and 3289 defenses). 3291 The language tag associated with a particular information item is of 3292 no consequence whatsoever in determining whether that content might 3293 contain possible homographs. The fact that a text is tagged as being 3294 in one language or using a particular script subtag provides no 3295 assurance whatsoever that it does not contain characters from scripts 3296 other than the one(s) associated with or specified by that language 3297 tag. 3299 Since there is no limit to the number of variant, private use, and 3300 extension subtags, and consequently no limit on the possible length 3301 of a tag, implementations need to guard against buffer overflow 3302 attacks. See Section 4.4 for details on language tag truncation, 3303 which can occur as a consequence of defenses against buffer overflow. 3305 Although the specification of valid subtags for an extension (see 3306 Section 3.7) MUST be available over the Internet, implementations 3307 SHOULD NOT mechanically depend on it being always accessible, to 3308 prevent denial-of-service attacks. 3310 7. Character Set Considerations 3312 The syntax in this document requires that language tags use only the 3313 characters A-Z, a-z, 0-9, and HYPHEN-MINUS, which are present in most 3314 character sets, so the composition of language tags shouldn't have 3315 any character set issues. 3317 The rendering of text based on the language tag is not addressed 3318 here. Historically, some processes have relied on the use of 3319 character set/encoding information (or other external information) in 3320 order to infer how a specific string of characters should be 3321 rendered. Notably this applies to language- and culture-specific 3322 variations of Han ideographs as used in Japanese, Chinese, and 3323 Korean, where use of, for example, a Japanese character encoding such 3324 as EUC-JP implies that the text itself is in Japanese. When language 3325 tags are applied to spans of text, rendering engines might be able to 3326 use that information to better select fonts or make other rendering 3327 choices, particularly where languages with distinct writing 3328 traditions use the same characters. 3330 8. Changes from RFC 4646 3332 The main goal for this revision of this document was to incorporate 3333 two new parts of ISO 639 (ISO 639-3 and ISO 639-5) and their 3334 attendant sets of language codes into the IANA Language Subtag 3335 Registry. This permits the identification of many more languages and 3336 language collections than previously supported. 3338 The specific changes in this document to meet these goals are: 3340 o Defines the incorporation of ISO 639-3 and ISO 639-5 codes for use 3341 as primary and extended language subtags. It also permanently 3342 reserves and disallows the use of additional 'extlang' subtags. 3343 The changes necessary to achieve this were: 3345 * Modified the ABNF comments. 3347 * Updated various registration and stability requirements 3348 sections to reference ISO 639-3 and ISO 639-5 in addition to 3349 ISO 639-1 and ISO 639-2. 3351 * Edited the text to eliminate references to extended language 3352 subtags where they are no longer used. 3354 * Explained the change in the section on extended language 3355 subtags. 3357 o Changed the ABNF related to grandfathered tags. The irregular 3358 tags are now listed. Well-formed grandfathered tags are now 3359 described by the 'langtag' production and the 'grandfathered' 3360 production was removed as a result. Also: added description of 3361 both types of grandfathered tags to Section 2.2.8. 3363 o Added the paragraph on "collections" to Section 4.1. 3365 o Changed the capitalization rules for 'Tag' fields in Section 3.1. 3367 o Split section 3.1 up into subsections. 3369 o Modified section 3.5 to allow Suppress-Script fields to be added, 3370 modified, or removed via the registration process. This was an 3371 erratum from RFC 4646. 3373 o Modified examples that used region code 'CS' (formerly Serbia and 3374 Montenegro) to use 'RS' (Serbia) instead. 3376 o Modified the rules for creating and maintaining record 3377 'Description' fields to prevent duplicates, including inverted 3378 duplicates. 3380 o Removed the lengthy description of why RFC 4646 was created from 3381 this section, which also caused the removal of the reference to 3382 XML Schema. 3384 o Modified the text in section 2.1 to place more emphasis on the 3385 fact that language tags are not case sensitive. 3387 o Replaced the example "fr-Latn-CA" in Section 2.1 with "sr-Latn-RS" 3388 and "az-Arab-IR" because "fr-Latn-CA" doesn't respect the 3389 Suppress-Script on 'Latn' with 'fr'. 3391 o Changed the requirements for well-formedness to make singleton 3392 repetition checking optional (it is required for validity 3393 checking) in Section 2.2.9. 3395 o Changed the text in Section 2.2.9 referring to grandfathered 3396 checking to note that the list is now included in the ABNF. 3398 o Modified and added text to Section 3.2. The job description was 3399 placed first. A note was added making clear that the Language 3400 Subtag Reviewer may delegate various non-critical duties, 3401 including list moderation. Finally, additional text was added to 3402 make the appointment process clear and to clarify that decisions 3403 and performance of the reviewer are appealable. 3405 o Added text to Section 3.5 clarifying that the 3406 ietf-languages@iana.org list is operated by whomever the IESG 3407 appoints. 3409 o Added text to Section 3.1.5 clarifying that the first Description 3410 in a 'language' record matches the corresponding Reference Name 3411 for the language in ISO 639-3. 3413 o Modified Section 2.2.9 to define classes of conformance related to 3414 specific tags (formerly 'well-formed' and 'valid' referred to 3415 implementations). Notes were added about the removal of 'extlang' 3416 from the ABNF provided in RFC 4646, allowing for well-formedness 3417 using this older definition. Reference to RFC 3066 well- 3418 formedness was also added. 3420 o Added text to the end of Section 3.1.2 noting that future versions 3421 of this document might add new field types to the Registry format 3422 and recommending that implementations ignore any unrecognized 3423 fields. 3425 o Added text about what the lack of a Suppress-Script field means in 3426 a record to Section 3.1.9. 3428 o Added text allowing the correction of misspellings and typographic 3429 errors to Section 3.1.5. 3431 o Added text to Section 3.1.8 disallowing Prefix field conflicts 3432 (such as circular prefix references). 3434 o Modified text in Section 3.5 to require the subtag reviewer to 3435 announce his/her decision (or extension) following the two-week 3436 period. Also clarified that any decision or failure to decide can 3437 be appealed. 3439 o Modified text in Section 4.1 to include the (heretofore anecdotal) 3440 guiding principle of tag choice, and clarifying the non-use of 3441 script subtags in non-written applications. Also updated examples 3442 in this section to use Chamic languages as an example of language 3443 collections. 3445 o Prohibited multiple use of the same variant in a tag (i.e. "de- 3446 1901-1901"). Previously this was only a recommendation 3447 ("SHOULD"). 3449 o Removed inappropriate [RFC2119] language from the illustration in 3450 Section 4.4.1. 3452 o Replaced the example of deprecating "zh-guoyu" with "zh- 3453 hakka"->"hak" in Section 4.5, noting that it was this document 3454 that caused the change. 3456 o Replaced the section in Section 4.1 dealing with "mul"/"und" to 3457 include the subtags 'zxx' and 'mis', as well as the tag 3458 "i-default". A normative reference to RFC 2277 was added, along 3459 with an informative reference to MARC21. 3461 o Added text to Section 3.5 clarifying that any modifications of a 3462 registration request must be sent to the ietf-languages@iana.org 3463 list before submission to IANA. 3465 o Changed the ABNF for the record-jar format from using the LWSP 3466 production to use a folding whitespace production similar to obs- 3467 FWS in [RFC5234]. This effectively prevents unintentional blank 3468 lines inside a field. 3470 o Clarified and revised text in Section 3.3, Section 3.5, and 3471 Section 5.1 to clarify that the Language Subtag Reviewer sends the 3472 complete registration forms to IANA, that IANA extracts the record 3473 from the form, and that the forms must also be archived separately 3474 from the registry. 3476 o Added text to Section 5 requiring IANA to send an announcement to 3477 an ietf-languages-announce list whenever the registry is updated. 3479 o Modification of the registry to use UTF-8 as its character 3480 encoding. This also entails additional instructions to IANA and 3481 the Language Subtag Reviewer in the registration process. 3483 o Modified the rules in Section 2.2.4 so that "exceptionally 3484 reserved" ISO 3166-1 codes other than 'UK' were included into the 3485 registry. In particular, this allows the code 'EU' (European 3486 Union) to be used to form language tags or (more commonly) for 3487 applications that use the registry for region codes to reference 3488 this subtag. 3490 o Modified the IANA considerations section (Section 5) to remove 3491 unnecessary normative [RFC2119] language. 3493 9. References 3495 9.1. Normative References 3497 [ISO15924] 3498 International Organization for Standardization, "ISO 3499 15924:2004. Information and documentation -- Codes for the 3500 representation of names of scripts", January 2004. 3502 [ISO3166-1] 3503 International Organization for Standardization, "ISO 3166- 3504 1:2006. Codes for the representation of names of countries 3505 and their subdivisions -- Part 1: Country codes", 3506 November 2006. 3508 [ISO639-1] 3509 International Organization for Standardization, "ISO 639- 3510 1:2002. Codes for the representation of names of languages 3511 -- Part 1: Alpha-2 code", 2002. 3513 [ISO639-2] 3514 International Organization for Standardization, "ISO 639- 3515 2:1998. Codes for the representation of names of languages 3516 -- Part 2: Alpha-3 code, first edition", 1998. 3518 [ISO639-3] 3519 International Organization for Standardization, "ISO 639- 3520 3:2007. Codes for the representation of names of languages 3521 -- Part 3: Alpha-3 code for comprehensive coverage of 3522 languages", 2007. 3524 [ISO639-5] 3525 International Organization for Standardization, "ISO 639- 3526 5:1998. Codes for the representation of names of languages 3527 -- Part 5: Alpha-3 code for language families and groups", 3528 May 2008. 3530 [ISO646] International Organization for Standardization, "ISO/IEC 3531 646:1991, Information technology -- ISO 7-bit coded 3532 character set for information interchange.", 1991. 3534 [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3535 3", BCP 9, RFC 2026, October 1996. 3537 [RFC2028] Hovey, R. and S. Bradner, "The Organizations Involved in 3538 the IETF Standards Process", BCP 11, RFC 2028, 3539 October 1996. 3541 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3542 Requirement Levels", BCP 14, RFC 2119, March 1997. 3544 [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and 3545 Languages", BCP 18, RFC 2277, January 1998. 3547 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an 3548 IANA Considerations Section in RFCs", BCP 26, RFC 2434, 3549 October 1998. 3551 [RFC2860] Carpenter, B., Baker, F., and M. Roberts, "Memorandum of 3552 Understanding Concerning the Technical Work of the 3553 Internet Assigned Numbers Authority", RFC 2860, June 2000. 3555 [RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the 3556 Internet: Timestamps", RFC 3339, July 2002. 3558 [RFC4645] Ewell, D., "Initial Language Subtag Registry", RFC 4645, 3559 September 2006. 3561 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 3562 BCP 47, RFC 4647, September 2006. 3564 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 3565 Specifications: ABNF", STD 68, RFC 5234, January 2008. 3567 [UAX14] Freitag, A., "Unicode Standard Annex #14: Line Breaking 3568 Properties", August 2006, 3569 . 3571 [UN_M.49] Statistics Division, United Nations, "Standard Country or 3572 Area Codes for Statistical Use", Revision 4 (United 3573 Nations publication, Sales No. 98.XVII.9, June 1999. 3575 9.2. Informative References 3577 [RFC1766] Alvestrand, H., "Tags for the Identification of 3578 Languages", RFC 1766, March 1995. 3580 [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) 3581 Part Three: Message Header Extensions for Non-ASCII Text", 3582 RFC 2047, November 1996. 3584 [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded 3585 Word Extensions: 3586 Character Sets, Languages, and Continuations", RFC 2231, 3587 November 1997. 3589 [RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO 3590 10646", RFC 2781, February 2000. 3592 [RFC3066] Alvestrand, H., "Tags for the Identification of 3593 Languages", RFC 3066, January 2001. 3595 [RFC3282] Alvestrand, H., "Content Language Headers", RFC 3282, 3596 May 2002. 3598 [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC 3599 Text on Security Considerations", BCP 72, RFC 3552, 3600 July 2003. 3602 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 3603 10646", STD 63, RFC 3629, November 2003. 3605 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 3606 Languages", BCP 47, RFC 4646, September 2006. 3608 [UTS35] Davis, M., "Unicode Technical Standard #35: Locale Data 3609 Markup Language (LDML)", December 2007, 3610 . 3612 [Unicode] Unicode Consortium, "The Unicode Consortium. The Unicode 3613 Standard, Version 5.0, (Boston, MA, Addison-Wesley, 2003. 3614 ISBN 0-321-49081-0)", January 2007. 3616 [draft-4645bis] 3617 Ewell, D., Ed., "Update to the Language Subtag Registry", 3618 November 2008, . 3621 [iso639.prin] 3622 ISO 639 Joint Advisory Committee, "ISO 639 Joint Advisory 3623 Committee: Working principles for ISO 639 maintenance", 3624 March 2000, 3625 . 3628 [record-jar] 3629 Raymond, E., "The Art of Unix Programming", 2003, 3630 . 3632 Appendix A. Acknowledgements 3634 Any list of contributors is bound to be incomplete; please regard the 3635 following as only a selection from the group of people who have 3636 contributed to make this document what it is today. 3638 The contributors to RFC 4646, RFC 4647, RFC 3066, and RFC 1766, the 3639 precursors of this document, made enormous contributions directly or 3640 indirectly to this document and are generally responsible for the 3641 success of language tags. 3643 The following people contributed to this document: 3645 Stephane Bortzmeyer, Karen Broome, Peter Constable, John Cowan, 3646 Martin Duerst, Frank Ellerman, Doug Ewell, Deborah Garside, Marion 3647 Gunn, Alfred Hoenes, Kent Karlsson, Chris Newman, Randy Presuhn, 3648 Stephen Silver, Shawn Steele, and many, many others. 3650 Very special thanks must go to Harald Tveit Alvestrand, who 3651 originated RFCs 1766 and 3066, and without whom this document would 3652 not have been possible. 3654 Special thanks go to Michael Everson, who served as the Language Tag 3655 Reviewer for almost the entire RFC 1766/RFC 3066 period, as well as 3656 the Language Subtag Reviewer since the adoption of RFC 4646. 3658 Special thanks also to Doug Ewell, for his production of the first 3659 complete subtag registry, his work to support and maintain new 3660 registrations, and his careful editorship of both RFC 4645 and 3661 [draft-4645bis]. 3663 Appendix B. Examples of Language Tags (Informative) 3665 Simple language subtag: 3667 de (German) 3669 fr (French) 3671 ja (Japanese) 3673 i-enochian (example of a grandfathered tag) 3675 Language subtag plus Script subtag: 3677 zh-Hant (Chinese written using the Traditional Chinese script) 3679 zh-Hans (Chinese written using the Simplified Chinese script) 3681 sr-Cyrl (Serbian written using the Cyrillic script) 3683 sr-Latn (Serbian written using the Latin script) 3685 Extended language subtags and their primary language subtag 3686 counterparts: 3688 zh-cmn-Hans-CN (Chinese, Mandarin, Simplified script, as used in 3689 China) 3691 cmn-Hans-CN (Mandarin Chinese, Simplified script, as used in 3692 China) 3694 zh-yue-HK (Chinese, Cantonese, as used in Hong Kong SAR) 3696 yue-HK (Cantonese Chinese, as used in Hong Kong SAR) 3698 Language-Script-Region: 3700 zh-Hans-CN (Chinese written using the Simplified script as used in 3701 mainland China) 3703 sr-Latn-RS (Serbian written using the Latin script as used in 3704 Serbia) 3706 Language-Variant: 3708 sl-rozaj (Resian dialect of Slovenian) 3709 sl-rozaj-biske (San Giorgio dialect of Resian dialect of 3710 Slovenian) 3712 sl-nedis (Nadiza dialect of Slovenian) 3714 Language-Region-Variant: 3716 de-CH-1901 (German as used in Switzerland using the 1901 variant 3717 [orthography]) 3719 sl-IT-nedis (Slovenian as used in Italy, Nadiza dialect) 3721 Language-Script-Region-Variant: 3723 hy-Latn-IT-arevela (Eastern Armenian written in Latin script, as 3724 used in Italy) 3726 Language-Region: 3728 de-DE (German for Germany) 3730 en-US (English as used in the United States) 3732 es-419 (Spanish appropriate for the Latin America and Caribbean 3733 region using the UN region code) 3735 Private use subtags: 3737 de-CH-x-phonebk 3739 az-Arab-x-AZE-derbend 3741 Private use registry values: 3743 x-whatever (private use using the singleton 'x') 3745 qaa-Qaaa-QM-x-southern (all private tags) 3747 de-Qaaa (German, with a private script) 3749 sr-Latn-QM (Serbian, Latin-script, private region) 3751 sr-Qaaa-RS (Serbian, private script, for Serbia) 3753 Tags that use extensions (examples ONLY: extensions MUST be defined 3754 by revision or update to this document or by RFC): 3756 en-US-u-islamcal 3758 zh-CN-a-myext-x-private 3760 en-a-myext-b-another 3762 Some Invalid Tags: 3764 de-419-DE (two region tags) 3766 a-DE (use of a single-character subtag in primary position; note 3767 that there are a few grandfathered tags that start with "i-" that 3768 are valid) 3770 ar-a-aaa-b-bbb-a-ccc (two extensions with same single-letter 3771 prefix) 3773 Appendix C. Examples of Registration Forms 3774 LANGUAGE SUBTAG REGISTRATION FORM 3775 1. Name of requester: Han Steenwijk 3776 2. E-mail address of requester: han.steenwijk @ unipd.it 3777 3. Record Requested: 3779 Type: variant 3780 Subtag: biske 3781 Description: The San Giorgio dialect of Resian 3782 Description: The Bila dialect of Resian 3783 Prefix: sl-rozaj 3784 Comments: The dialect of San Giorgio/Bila is one of the 3785 four major local dialects of Resian 3787 4. Intended meaning of the subtag: The local variety of Resian as 3788 spoken in San Giorgio/Bila 3790 5. Reference to published description of the language (book or 3791 article): 3792 -- Jan I.N. Baudouin de Courtenay - Opyt fonetiki rez'janskich 3793 govorov, Varsava - Peterburg: Vende - Kozancikov, 1875. 3795 LANGUAGE SUBTAG REGISTRATION FORM 3796 1. Name of requester: Jaska Zedlik 3797 2. E-mail address of requester: jz53 @ zedlik.com 3798 3. Record Requested: 3800 Type: variant 3801 Subtag: tarask 3802 Description: Belarusian in Taraskievica orthography 3803 Prefix: be 3804 Comments: The subtag represents Branislau Taraskievic's Belarusian 3805 orthography as published in "Bielaruski klasycny pravapis" by Juras 3806 Buslakou, Vincuk Viacorka, Zmicier Sanko, and Zmicier Sauka 3807 (Vilnia-Miensk 2005). 3809 4. Intended meaning of the subtag: 3811 The subtag is intended to represent the Belarusian orthography as 3812 published in "Bielaruski klasycny pravapis" by Juras Buslakou, Vincuk 3813 Viacorka, Zmicier Sanko, and Zmicier Sauka (Vilnia-Miensk 2005). 3815 5. Reference to published description of the language (book or article): 3817 Taraskievic, Branislau. Bielaruskaja gramatyka dla skol. Vilnia: Vyd. 3818 "Bielaruskaha kamitetu", 1929, 5th edition. 3820 Buslakou, Juras; Viacorka, Vincuk; Sanko, Zmicier; Sauka, Zmicier. 3821 Bielaruski klasycny pravapis. Vilnia-Miensk, 2005. 3823 6. Any other relevant information: 3825 Belarusian in Taraskievica orthography became widely used, especially in 3826 Belarusian-speaking Internet segment, but besides this some books and 3827 newspapers are also printed using this orthography of Belarusian. 3829 Authors' Addresses 3831 Addison Phillips (editor) 3832 Lab126 3834 Email: addison@inter-locale.com 3835 URI: http://www.inter-locale.com 3837 Mark Davis (editor) 3838 Google 3840 Email: mark.davis@google.com 3842 Full Copyright Statement 3844 Copyright (C) The IETF Trust (2008). 3846 This document is subject to the rights, licenses and restrictions 3847 contained in BCP 78, and except as set forth therein, the authors 3848 retain all their rights. 3850 This document and the information contained herein are provided on an 3851 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 3852 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 3853 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 3854 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 3855 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 3856 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 3858 Intellectual Property 3860 The IETF takes no position regarding the validity or scope of any 3861 Intellectual Property Rights or other rights that might be claimed to 3862 pertain to the implementation or use of the technology described in 3863 this document or the extent to which any license under such rights 3864 might or might not be available; nor does it represent that it has 3865 made any independent effort to identify any such rights. Information 3866 on the procedures with respect to rights in RFC documents can be 3867 found in BCP 78 and BCP 79. 3869 Copies of IPR disclosures made to the IETF Secretariat and any 3870 assurances of licenses to be made available, or the result of an 3871 attempt made to obtain a general license or permission for the use of 3872 such proprietary rights by implementers or users of this 3873 specification can be obtained from the IETF on-line IPR repository at 3874 http://www.ietf.org/ipr. 3876 The IETF invites any interested party to bring to its attention any 3877 copyrights, patents or patent applications, or other proprietary 3878 rights that may cover technology that may be required to implement 3879 this standard. Please address the information to the IETF at 3880 ietf-ipr@ietf.org.