idnits 2.17.1 draft-ietf-ltru-4646bis-14.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 3288. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 3299. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 3306. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 3312. 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 (May 16, 2008) is 5824 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. '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 (==), 18 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: November 17, 2008 May 16, 2008 8 Tags for Identifying Languages 9 draft-ietf-ltru-4646bis-14 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 November 17, 2008. 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.2. Language Subtag Sources and Interpretation . . . . . . . . 8 50 2.2.1. Primary Language Subtag . . . . . . . . . . . . . . . 9 51 2.2.2. Extended Language Subtags . . . . . . . . . . . . . . 11 52 2.2.3. Script Subtag . . . . . . . . . . . . . . . . . . . . 11 53 2.2.4. Region Subtag . . . . . . . . . . . . . . . . . . . . 12 54 2.2.5. Variant Subtags . . . . . . . . . . . . . . . . . . . 14 55 2.2.6. Extension Subtags . . . . . . . . . . . . . . . . . . 15 56 2.2.7. Private Use Subtags . . . . . . . . . . . . . . . . . 17 57 2.2.8. Grandfathered Registrations . . . . . . . . . . . . . 17 58 2.2.9. Classes of Conformance . . . . . . . . . . . . . . . . 18 59 3. Registry Format and Maintenance . . . . . . . . . . . . . . . 20 60 3.1. Format of the IANA Language Subtag Registry . . . . . . . 20 61 3.1.1. File Format . . . . . . . . . . . . . . . . . . . . . 20 62 3.1.2. Record Definitions . . . . . . . . . . . . . . . . . . 21 63 3.1.3. Subtag and Tag Fields . . . . . . . . . . . . . . . . 24 64 3.1.4. Description Field . . . . . . . . . . . . . . . . . . 24 65 3.1.5. Deprecated Field . . . . . . . . . . . . . . . . . . . 25 66 3.1.6. Preferred-Value Field . . . . . . . . . . . . . . . . 25 67 3.1.7. Prefix Field . . . . . . . . . . . . . . . . . . . . . 27 68 3.1.8. Suppress-Script Field . . . . . . . . . . . . . . . . 27 69 3.1.9. Macrolanguage Field . . . . . . . . . . . . . . . . . 28 70 3.1.10. Comments Field . . . . . . . . . . . . . . . . . . . . 29 71 3.2. Language Subtag Reviewer . . . . . . . . . . . . . . . . . 29 72 3.3. Maintenance of the Registry . . . . . . . . . . . . . . . 30 73 3.4. Stability of IANA Registry Entries . . . . . . . . . . . . 30 74 3.5. Registration Procedure for Subtags . . . . . . . . . . . . 34 75 3.6. Possibilities for Registration . . . . . . . . . . . . . . 38 76 3.7. Extensions and the Extensions Registry . . . . . . . . . . 41 77 3.8. Update of the Language Subtag Registry . . . . . . . . . . 43 78 4. Formation and Processing of Language Tags . . . . . . . . . . 45 79 4.1. Choice of Language Tag . . . . . . . . . . . . . . . . . . 45 80 4.1.1. Tagging Encompassed Languages . . . . . . . . . . . . 49 81 4.2. Meaning of the Language Tag . . . . . . . . . . . . . . . 50 82 4.3. Lists of Languages . . . . . . . . . . . . . . . . . . . . 52 83 4.4. Length Considerations . . . . . . . . . . . . . . . . . . 53 84 4.4.1. Working with Limited Buffer Sizes . . . . . . . . . . 53 85 4.4.2. Truncation of Language Tags . . . . . . . . . . . . . 54 86 4.5. Canonicalization of Language Tags . . . . . . . . . . . . 55 87 4.6. Considerations for Private Use Subtags . . . . . . . . . . 57 88 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 58 89 5.1. Language Subtag Registry . . . . . . . . . . . . . . . . . 58 90 5.2. Extensions Registry . . . . . . . . . . . . . . . . . . . 59 91 6. Security Considerations . . . . . . . . . . . . . . . . . . . 61 92 7. Character Set Considerations . . . . . . . . . . . . . . . . . 62 93 8. Changes from RFC 4646 . . . . . . . . . . . . . . . . . . . . 63 94 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 67 95 9.1. Normative References . . . . . . . . . . . . . . . . . . . 67 96 9.2. Informative References . . . . . . . . . . . . . . . . . . 68 97 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 70 98 Appendix B. Examples of Language Tags (Informative) . . . . . . . 71 99 Appendix C. Examples of Registration Forms . . . . . . . . . . . 74 100 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 76 101 Intellectual Property and Copyright Statements . . . . . . . . . . 77 103 1. Introduction 105 Human beings on our planet have, past and present, used a number of 106 languages. There are many reasons why one would want to identify the 107 language used when presenting or requesting information. 109 A user's language preferences often need to be identified so that 110 appropriate processing can be applied. For example, the user's 111 language preferences in a Web browser can be used to select Web pages 112 appropriately. Language preferences can also be used to select among 113 tools (such as dictionaries) to assist in the processing or 114 understanding of content in different languages. 116 In addition, knowledge about the particular language used by some 117 piece of information content might be useful or even required by some 118 types of processing; for example, spell-checking, computer- 119 synthesized speech, Braille transcription, or high-quality print 120 renderings. 122 One means of indicating the language used is by labeling the 123 information content with an identifier or "tag". These tags can be 124 used to specify user preferences when selecting information content, 125 or for labeling additional attributes of content and associated 126 resources. 128 Tags can also be used to indicate additional language attributes of 129 content. For example, indicating specific information about the 130 dialect, writing system, or orthography used in a document or 131 resource may enable the user to obtain information in a form that 132 they can understand, or it can be important in processing or 133 rendering the given content into an appropriate form or style. 135 This document specifies a particular identifier mechanism (the 136 language tag) and a registration function for values to be used to 137 form tags. It also defines a mechanism for private use values and 138 future extension. 140 This document replaces [RFC4646], which replaced [RFC3066] and its 141 predecessor [RFC1766]. For a list of changes in this document, see 142 Section 8. 144 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 145 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 146 document are to be interpreted as described in [RFC2119]. 148 2. The Language Tag 150 Language tags are used to help identify languages, whether spoken, 151 written, signed, or otherwise signaled, for the purpose of 152 communication. This includes constructed and artificial languages, 153 but excludes languages not intended primarily for human 154 communication, such as programming languages. 156 2.1. Syntax 158 The language tag is composed of one or more parts, known as 159 "subtags". Each subtag consists of a sequence of alphanumeric 160 characters. Subtags are distinguished and separated from one another 161 by a hyphen ("-", ABNF [RFC5234] %x2D). Usually a language tag 162 contains a "primary language" subtag, followed by a (possibly empty) 163 series of subsequent subtags, each of which refines or narrows the 164 range of languages identified by the overall tag. 166 Most subtags are distinguished by length, position in the tag, and 167 content: subtags can be recognized solely by these features. This 168 makes it possible to construct a parser that can extract and assign 169 some semantic information to the subtags, even if the specific subtag 170 values are not recognized. Thus, a parser need not have a list of 171 valid tags or subtags (that is, a copy of some version of the IANA 172 Language Subtag Registry) in order to perform common searching and 173 matching operations. The grandfathered tags registered under RFC 174 3066 [RFC3066], a fixed list that can never change, are the only 175 exception to this ability to infer meaning from subtag structure. 177 The syntax of the language tag in ABNF [RFC5234] is: 179 Language-Tag = langtag 180 / privateuse ; private use tag 181 / irregular ; tags grandfathered by rule 183 langtag = (language 184 ["-" script] 185 ["-" region] 186 *("-" variant) 187 *("-" extension) 188 ["-" privateuse]) 190 language = 2*3ALPHA ; shortest ISO 639 code 191 / 4ALPHA ; reserved for future use 192 / 5*8ALPHA ; registered language subtag 194 script = 4ALPHA ; ISO 15924 code 196 region = 2ALPHA ; ISO 3166-1 code 197 / 3DIGIT ; UN M.49 code 199 variant = 5*8alphanum ; registered variants 200 / (DIGIT 3alphanum) 202 extension = singleton 1*("-" (2*8alphanum)) 204 singleton = %x41-57 / %x59-5A / %x61-77 / %x79-7A / DIGIT 205 ; "a"-"w" / "y"-"z" / "A"-"W" / "Y"-"Z" / "0"-"9" 206 ; Single alphanumerics 207 ; "x" is reserved for private use 209 privateuse = "x" 1*("-" (1*8alphanum)) 211 irregular = "en-GB-oed" / "i-ami" / "i-bnn" / "i-default" 212 / "i-enochian" / "i-hak" / "i-klingon" / "i-lux" 213 / "i-mingo" / "i-navajo" / "i-pwn" / "i-tao" 214 / "i-tay" / "i-tsu" / "no-bok" / "no-nyn" 215 / "sgn-BE-FR" / "sgn-BE-NL" / "sgn-CH-DE" / "zh-cmn" 216 / "zh-cmn-Hans" / "zh-cmn-Hant" / "zh-gan" 217 / "zh-min" / "zh-min-nan" / "zh-wuu" / "zh-yue" 219 alphanum = (ALPHA / DIGIT) ; letters and numbers 221 Figure 1: Language Tag ABNF 223 All subtags have a maximum length of eight characters and whitespace 224 is not permitted in a language tag. There is a subtlety in the ABNF 225 production 'variant': variants starting with a digit MAY be four 226 characters long, while those starting with a letter MUST be at least 227 five characters long. For examples of language tags, see Appendix B. 229 Note Well: the ABNF syntax does not distinguish between upper and 230 lowercase. The appearance of upper and lowercase letters in the 231 various ABNF productions above do not affect how implementations 232 interpret tags. That is, the tag "I-AMI" matches the item "i-ami" in 233 the 'irregular' production. At all times, the tags and their 234 subtags, including private use and extensions, are to be treated as 235 case insensitive: there exist conventions for the capitalization of 236 some of the subtags, but these MUST NOT be taken to carry meaning. 238 For example: 240 o [ISO639-1] recommends that language codes be written in lowercase 241 ('mn' Mongolian). 243 o [ISO3166-1] recommends that country codes be capitalized ('MN' 244 Mongolia). 246 o [ISO15924] recommends that script codes use lowercase with the 247 initial letter capitalized ('Cyrl' Cyrillic). 249 However, in the tags defined by this document, the uppercase US-ASCII 250 letters in the range 'A' through 'Z' are considered equivalent and 251 mapped directly to their US-ASCII lowercase equivalents in the range 252 'a' through 'z'. Thus, the tag "mn-Cyrl-MN" is not distinct from 253 "MN-cYRL-mn" or "mN-cYrL-Mn" (or any other combination), and each of 254 these variations conveys the same meaning: Mongolian written in the 255 Cyrillic script as used in Mongolia. 257 Although case distinctions do not carry meaning in language tags, 258 consistent formatting and presentation of the tags will aid users. 259 The format of the tags and subtags in the registry is RECOMMENDED. 260 In this format, all subtags, including all those following singletons 261 (that is, in extension or private-use sequences) are in lowercase. 262 The exceptions to this are: all other non-initial two-letter subtags 263 are uppercase and all other non-initial four-letter subtags are 264 titlecase. 266 Note that although [RFC5234] refers to octets, the language tags 267 described in this document are sequences of characters from the US- 268 ASCII [ISO646] repertoire. Language tags MAY be used in documents 269 and applications that use other encodings, so long as these encompass 270 the US-ASCII repertoire. An example of this would be an XML document 271 that uses the UTF-16LE [RFC2781] encoding of [Unicode]. 273 2.2. Language Subtag Sources and Interpretation 275 The namespace of language tags and their subtags is administered by 276 the Internet Assigned Numbers Authority (IANA) [RFC2860] according to 277 the rules in Section 5 of this document. The Language Subtag 278 Registry maintained by IANA is the source for valid subtags: other 279 standards referenced in this section provide the source material for 280 that registry. 282 Terminology used in this document: 284 o "Tag" refers to a complete language tag, such as "sr-Latn-RS" or 285 "az-Arab-IR". Examples of tags in this document are enclosed in 286 double-quotes ("en-US"). 288 o "Subtag" refers to a specific section of a tag, delimited by 289 hyphen, such as the subtag 'Hant' in "zh-Hant-CN". Examples of 290 subtags in this document are enclosed in single quotes ('Hant'). 292 o "Code" refers to values defined in external standards (and which 293 are used as subtags in this document). For example, 'Hant' is an 294 [ISO15924] script code that was used to define the 'Hant' script 295 subtag for use in a language tag. Examples of codes in this 296 document are enclosed in single quotes ('en', 'Hant'). 298 The definitions in this section apply to the various subtags within 299 the language tags defined by this document, excepting those 300 "grandfathered" tags defined in Section 2.2.8. 302 Language tags are designed so that each subtag type has unique length 303 and content restrictions. These make identification of the subtag's 304 type possible, even if the content of the subtag itself is 305 unrecognized. This allows tags to be parsed and processed without 306 reference to the latest version of the underlying standards or the 307 IANA registry and makes the associated exception handling when 308 parsing tags simpler. 310 Subtags in the IANA registry that do not come from an underlying 311 standard can only appear in specific positions in a tag. 312 Specifically, they can only occur as primary language subtags or as 313 variant subtags. 315 Note that sequences of private use and extension subtags MUST occur 316 at the end of the sequence of subtags and MUST NOT be interspersed 317 with subtags defined elsewhere in this document. 319 Single-letter and single-digit subtags are reserved for current or 320 future use. These include the following current uses: 322 o The single-letter subtag 'x' is reserved to introduce a sequence 323 of private use subtags. The interpretation of any private use 324 subtags is defined solely by private agreement and is not defined 325 by the rules in this section or in any standard or registry 326 defined in this document. 328 o All other single-letter subtags are reserved to introduce 329 standardized extension subtag sequences as described in 330 Section 3.7. 332 o The single-letter subtag 'i' is used by some grandfathered tags, 333 such as "i-default", where it always appears in the first position 334 and cannot be confused with an extension. 336 2.2.1. Primary Language Subtag 338 The primary language subtag is the first subtag in a language tag 339 (with the exception of private use and certain grandfathered tags) 340 and cannot be omitted. The following rules apply to the primary 341 language subtag: 343 1. All two-character primary language subtags were defined in the 344 IANA registry according to the assignments found in the standard 345 ISO 639 Part 1, "ISO 639-1:2002, Codes for the representation of 346 names of languages -- Part 1: Alpha-2 code" [ISO639-1], or using 347 assignments subsequently made by the ISO 639-1 registration 348 authority (RA) or governing standardization bodies. 350 2. All three-character primary language subtags were defined in the 351 IANA registry according to the assignments found in either ISO 352 639 Part 2, "ISO 639-2:1998 - Codes for the representation of 353 names of languages -- Part 2: Alpha-3 code - edition 1" 354 [ISO639-2], ISO 639 Part 3, "Codes for the representation of 355 names of languages -- Part 3: Alpha-3 code for comprehensive 356 coverage of languages" [ISO639-3], or assignments subsequently 357 made by the relevant ISO 639 registration authorities or 358 governing standardization bodies. 360 3. The subtags in the range 'qaa' through 'qtz' are reserved for 361 private use in language tags. These subtags correspond to codes 362 reserved by ISO 639-2 for private use. These codes MAY be used 363 for non-registered primary language subtags (instead of using 364 private use subtags following 'x-'). Please refer to Section 4.6 365 for more information on private use subtags. 367 4. All four-character language subtags are reserved for possible 368 future standardization. 370 5. All language subtags of 5 to 8 characters in length in the IANA 371 registry were defined via the registration process in Section 3.5 372 and MAY be used to form the primary language subtag. At the time 373 this document was created, there were no examples of this kind of 374 subtag and future registrations of this type will be discouraged: 375 primary languages are strongly RECOMMENDED for registration with 376 ISO 639, and proposals rejected by ISO 639/RA-JAC will be closely 377 scrutinized before they are registered with IANA. 379 6. The single-character subtag 'x' as the primary subtag indicates 380 that the language tag consists solely of subtags whose meaning is 381 defined by private agreement. For example, in the tag "x-fr-CH", 382 the subtags 'fr' and 'CH' SHOULD NOT be taken to represent the 383 French language or the country of Switzerland (or any other value 384 in the IANA registry) unless there is a private agreement in 385 place to do so. See Section 4.6. 387 7. The single-character subtag 'i' is used by some grandfathered 388 tags (see Section 2.2.8) such as "i-klingon" and "i-bnn". (Other 389 grandfathered tags have a primary language subtag in their first 390 position.) 392 8. Other values MUST NOT be assigned to the primary subtag except by 393 revision or update of this document. 395 Note: For languages that have both an ISO 639-1 two-character code 396 and a three character code assigned by either ISO 639-2 or ISO 639-3, 397 only the ISO 639-1 two-character code is defined in the IANA 398 registry. 400 Note: For languages that have no ISO 639-1 two-character code and for 401 which the ISO 639-2/T (Terminology) code and the ISO 639-2/B 402 (Bibliographic) codes differ, only the Terminology code is defined in 403 the IANA registry. At the time this document was created, all 404 languages that had both kinds of three-character code were also 405 assigned a two-character code; it is expected that future assignments 406 of this nature will not occur. 408 Note: To avoid problems with versioning and subtag choice as 409 experienced during the transition between RFC 1766 and RFC 3066, as 410 well as the canonical nature of subtags defined by this document, the 411 ISO 639 Registration Authority Joint Advisory Committee (ISO 639/ 412 RA-JAC) has included the following statement in [iso639.prin]: 414 "A language code already in ISO 639-2 at the point of freezing ISO 415 639-1 shall not later be added to ISO 639-1. This is to ensure 416 consistency in usage over time, since users are directed in 417 Internet applications to employ the alpha-3 code when an alpha-2 418 code for that language is not available." 420 In order to avoid instability in the canonical form of tags, if a 421 two-character code is added to ISO 639-1 for a language for which a 422 three-character code was already included in either ISO 639-2 or ISO 423 639-3, the two-character code MUST NOT be registered. See 424 Section 3.4. 426 For example, if some content were tagged with 'haw' (Hawaiian), which 427 currently has no two-character code, the tag would not be invalidated 428 if ISO 639-1 were to assign a two-character code to the Hawaiian 429 language at a later date. 431 Note: An example of independent primary language subtag registration 432 might include: one of the grandfathered IANA registrations is 433 "i-enochian". The subtag 'enochian' could be registered in the IANA 434 registry as a primary language subtag (assuming that ISO 639 does not 435 register this language first), making tags such as "enochian-AQ" and 436 "enochian-Latn" valid. 438 2.2.2. Extended Language Subtags 440 [RFC4646] contained an additional type of subtag called the 'extended 441 language subtag' to allow for certain kinds of compatibility mappings 442 which ultimately were not used. These subtags were reserved for 443 future use and ultimately removed from the ABNF. They MUST NOT be 444 registered or used to form language tags. See also Section 2.2.9 for 445 a discussion of the consequences of removing the 'extlang' production 446 from grammar. 448 Note: a few grandfathered tags (Section 2.2.8) matched the 'extlang' 449 production in RFC 4646, and thus were not considered 'irregular'. 450 These tags are still valid and were added to the 'irregular' 451 production in the ABNF. 453 2.2.3. Script Subtag 455 Script subtags are used to indicate the script or writing system 456 variations that distinguish the written forms of a language or its 457 dialects. The following rules apply to the script subtags: 459 1. Script subtags MUST follow the primary language subtag and MUST 460 precede any other type of subtag. 462 2. All four-character subtags were defined according to 463 [ISO15924]--"Codes for the representation of the names of 464 scripts": alpha-4 script codes, or subsequently assigned by the 465 ISO 15924 registration authority or governing standardization 466 bodies, denoting the script or writing system used in conjunction 467 with this language. 469 3. The script subtags 'Qaaa' through 'Qabx' are reserved for private 470 use in language tags. These subtags correspond to codes reserved 471 by ISO 15924 for private use. These codes MAY be used for non- 472 registered script values. Please refer to Section 4.6 for more 473 information on private use subtags. 475 4. Script subtags MUST NOT be registered using the process in 476 Section 3.5 of this document. Variant subtags MAY be considered 477 for registration for that purpose. 479 5. There MUST be at most one script subtag in a language tag, and 480 the script subtag SHOULD be omitted when it adds no 481 distinguishing value to the tag or when the primary language 482 subtag's record includes a Suppress-Script field listing the 483 applicable script subtag. 485 Example: "sr-Latn" represents Serbian written using the Latin script. 487 2.2.4. Region Subtag 489 Region subtags are used to indicate linguistic variations associated 490 with or appropriate to a specific country, territory, or region. 491 Typically, a region subtag is used to indicate regional dialects or 492 usage, or region-specific spelling conventions. A region subtag can 493 also be used to indicate that content is expressed in a way that is 494 appropriate for use throughout a region, for instance, Spanish 495 content tailored to be useful throughout Latin America. 497 The following rules apply to the region subtags: 499 1. Region subtags MUST follow any language or script subtags and 500 MUST precede any other type of subtag. 502 2. All two-character subtags following the primary subtag were 503 defined in the IANA registry according to the assignments found 504 in [ISO3166-1] ("Codes for the representation of names of 505 countries and their subdivisions -- Part 1: Country codes") using 506 the list of alpha-2 country codes, or using assignments 507 subsequently made by the ISO 3166-1 maintenance agency or 508 governing standardization bodies. In addition, the codes that 509 are "exceptionally reserved" (as opposed to "assigned") in ISO 510 3166-1 were also defined in the registry, with the exception of 511 'UK', which is an exact synonym for the assigned code 'GB'. 513 3. All three-character subtags consisting of digit (numeric) 514 characters following the primary subtag were defined in the IANA 515 registry according to the assignments found in UN Standard 516 Country or Area Codes for Statistical Use [UN_M.49] or 517 assignments subsequently made by the governing standards body. 518 Note that not all of the UN M.49 codes are defined in the IANA 519 registry. The following rules define which codes are entered 520 into the registry as valid subtags: 522 A. UN numeric codes assigned to 'macro-geographical 523 (continental)' or sub-regions MUST be registered in the 524 registry. These codes are not associated with an assigned 525 ISO 3166-1 alpha-2 code and represent supra-national areas, 526 usually covering more than one nation, state, province, or 527 territory. 529 B. UN numeric codes for 'economic groupings' or 'other 530 groupings' MUST NOT be registered in the IANA registry and 531 MUST NOT be used to form language tags. 533 C. When ISO 3166-1 reassigns a code formerly used for one 534 country or area to another country or area and that code 535 already is present in the registry, the UN numeric code for 536 that country or area MUST be registered in the registry as 537 described in Section 3.4 and MUST be used to form language 538 tags that represent the country or region for which it is 539 defined (rather than the recycled ISO 3166-1 code). 541 D. UN numeric codes for countries or areas for which there is an 542 associated ISO 3166-1 alpha-2 code in the registry MUST NOT 543 be entered into the registry and MUST NOT be used to form 544 language tags. Note that the ISO 3166-based subtag in the 545 registry MUST actually be associated with the UN M.49 code in 546 question. 548 E. UN numeric codes and ISO 3166-1 alpha-2 codes for countries 549 or areas listed as eligible for registration in [RFC4645] but 550 not presently registered MAY be entered into the IANA 551 registry via the process described in Section 3.5. Once 552 registered, these codes MAY be used to form language tags. 554 F. All other UN numeric codes for countries or areas that do not 555 have an associated ISO 3166-1 alpha-2 code MUST NOT be 556 entered into the registry and MUST NOT be used to form 557 language tags. For more information about these codes, see 558 Section 3.4. 560 4. Note: The alphanumeric codes in Appendix X of the UN document 561 MUST NOT be entered into the registry and MUST NOT be used to 562 form language tags. (At the time this document was created, 563 these values matched the ISO 3166-1 alpha-2 codes.) 565 5. There MUST be at most one region subtag in a language tag and the 566 region subtag MAY be omitted, as when it adds no distinguishing 567 value to the tag. 569 6. The region subtags 'AA', 'QM'-'QZ', 'XA'-'XZ', and 'ZZ' are 570 reserved for private use in language tags. These subtags 571 correspond to codes reserved by ISO 3166 for private use. These 572 codes MAY be used for private use region subtags (instead of 573 using a private use subtag sequence). Please refer to 574 Section 4.6 for more information on private use subtags. 576 "de-AT" represents German ('de') as used in Austria ('AT'). 578 "sr-Latn-RS" represents Serbian ('sr') written using Latin script 579 ('Latn') as used in Serbia ('RS'). 581 "es-419" represents Spanish ('es') appropriate to the UN-defined 582 Latin America and Caribbean region ('419'). 584 2.2.5. Variant Subtags 586 Variant subtags are used to indicate additional, well-recognized 587 variations that define a language or its dialects that are not 588 covered by other available subtags. The following rules apply to the 589 variant subtags: 591 1. Variant subtags MUST follow any language, script, or region 592 subtags, but MUST precede any extension or private use subtag 593 sequences. 595 2. Variant subtags, as a collection, are not associated with any 596 particular external standard. The meaning of variant subtags in 597 the registry is defined in the course of the registration process 598 defined in Section 3.5. Note that any particular variant subtag 599 might be associated with some external standard. However, 600 association with a standard is not required for registration. 602 3. More than one variant MAY be used to form the language tag. 604 4. Variant subtags MUST be registered with IANA according to the 605 rules in Section 3.5 of this document before being used to form 606 language tags. In order to distinguish variants from other types 607 of subtags, registrations MUST meet the following length and 608 content restrictions: 610 1. Variant subtags that begin with a letter (a-z, A-Z) MUST be 611 at least five characters long. 613 2. Variant subtags that begin with a digit (0-9) MUST be at 614 least four characters long. 616 5. The same variant subtag MUST NOT be used more than once within a 617 language tag. 619 * For example, the tag "de-DE-1901-1901" is not valid. 621 Variant subtag records in the language subtag registry MAY include 622 one or more 'Prefix' fields. The 'Prefix' indicates the language tag 623 or tags that would make a suitable prefix (with other subtags, as 624 appropriate) in forming a language tag with the variant. That is, 625 each of the subtags in the prefix SHOULD appear, in order, before the 626 variant. For example, the subtag 'nedis' has a Prefix of "sl", 627 making it suitable for forming language tags such as "sl-nedis" and 628 "sl-IT-nedis", but not suitable for use in a tag such as "zh-nedis" 629 or "it-IT-nedis". 631 "sl-nedis" represents the Natisone or Nadiza dialect of Slovenian. 633 "de-CH-1996" represents German as used in Switzerland and as written 634 using the spelling reform beginning in the year 1996 C.E. 636 Most variants that share a prefix are mutually exclusive. For 637 example, the German orthographic variations '1996' and '1901' SHOULD 638 NOT be used in the same tag, as they represent the dates of different 639 spelling reforms. A variant that can meaningfully be used in 640 combination with another variant SHOULD include a 'Prefix' field in 641 its registry record that lists that other variant. For example, if 642 another German variant 'example' were created that made sense to use 643 with '1996', then 'example' should include two Prefix fields: "de" 644 and "de-1996". 646 2.2.6. Extension Subtags 648 Extensions provide a mechanism for extending language tags for use in 649 various applications. They are intended to identify information 650 which is commonly used in association with languages or language 651 tags, but which is not part of language identification. See 652 Section 3.7. The following rules apply to extensions: 654 1. An extension MUST follow at least a primary language subtag. 655 That is, a language tag cannot begin with an extension. 656 Extensions extend language tags, they do not override or replace 657 them. For example, "a-value" is not a well-formed language tag, 658 while "de-a-value" is. 660 2. Extension subtags are separated from the other subtags defined 661 in this document by a single-character subtag ("singleton"). 662 The singleton MUST be one allocated to a registration authority 663 via the mechanism described in Section 3.7 and MUST NOT be the 664 letter 'x', which is reserved for private use subtag sequences. 666 3. Note: Private use subtag sequences starting with the singleton 667 subtag 'x' are described in Section 2.2.7 below. 669 4. Each singleton subtag MUST appear at most one time in each tag 670 (other than as a private use subtag). That is, singleton 671 subtags MUST NOT be repeated. For example, the tag "en-a-bbb-a- 672 ccc" is invalid because the subtag 'a' appears twice. Note that 673 the tag "en-a-bbb-x-a-ccc" is valid because the second 674 appearance of the singleton 'a' is in a private use sequence. 676 5. Extension subtags MUST meet all of the requirements for the 677 content and format of subtags defined in this document. 679 6. Extension subtags MUST meet whatever requirements are set by the 680 document that defines their singleton prefix and whatever 681 requirements are provided by the maintaining authority. 683 7. Each extension subtag MUST be from two to eight characters long 684 and consist solely of letters or digits, with each subtag 685 separated by a single '-'. 687 8. Each singleton MUST be followed by at least one extension 688 subtag. For example, the tag "tlh-a-b-foo" is invalid because 689 the first singleton 'a' is followed immediately by another 690 singleton 'b'. 692 9. Extension subtags MUST follow all language, script, region, and 693 variant subtags in a tag. 695 10. All subtags following the singleton and before another singleton 696 are part of the extension. Example: In the tag "fr-a-Latn", the 697 subtag 'Latn' does not represent the script subtag 'Latn' 698 defined in the IANA Language Subtag Registry. Its meaning is 699 defined by the extension 'a'. 701 11. In the event that more than one extension appears in a single 702 tag, the tag SHOULD be canonicalized as described in 703 Section 4.5. 705 For example, if the prefix singleton 'r' and the shown subtags were 706 defined, then the following tag would be a valid example: "en-Latn- 707 GB-boont-r-extended-sequence-x-private" 709 2.2.7. Private Use Subtags 711 Private use subtags are used to indicate distinctions in language 712 important in a given context by private agreement. The following 713 rules apply to private use subtags: 715 1. Private use subtags are separated from the other subtags defined 716 in this document by the reserved single-character subtag 'x'. 718 2. Private use subtags MUST conform to the format and content 719 constraints defined in the ABNF for all subtags. 721 3. Private use subtags MUST follow all language, script, region, 722 variant, and extension subtags in the tag. Another way of saying 723 this is that all subtags following the singleton 'x' MUST be 724 considered private use. Example: The subtag 'US' in the tag "en- 725 x-US" is a private use subtag. 727 4. A tag MAY consist entirely of private use subtags. 729 5. No source is defined for private use subtags. Use of private use 730 subtags is by private agreement only. 732 6. Private use subtags are NOT RECOMMENDED where alternatives exist 733 or for general interchange. See Section 4.6 for more information 734 on private use subtag choice. 736 For example: The Unicode Consortium defines a set of private use 737 extensions in LDML ([UTS35], Locale Data Markup Language, the Unicode 738 standard for defining locale data) such as in the tag "es-419-x-ldml- 739 collatio-traditio", which indicates Latin American Spanish with 740 traditional order for sorted lists. 742 2.2.8. Grandfathered Registrations 744 Prior to RFC 4646, whole language tags were registered according to 745 the rules in RFC 1766 and/or RFC 3066. These registered tags 746 maintain their validity. Of those tags, those that were made 747 obsolete or redundant by the advent of RFC 4646, by this document, or 748 by subsequent registration of subtags are maintained in the registry 749 in records as "redundant" records. Those tags that do not match the 750 'langtag' production in the ABNF in this document or that contain 751 subtags that do not individually appear in the registry are 752 maintained in the registry in records of the "grandfathered" type. 754 Grandfathered tags contain one or more subtags that are not defined 755 in the Language Subtag Registry (see Section 3). Redundant tags 756 consist entirely of subtags defined above and whose independent 757 registration was superseded by [RFC4646]. For more information see 758 Section 3.8. 760 Some grandfathered tags are "regular" in that they match the 761 'langtag' production in Figure 1. In some cases, these tags could 762 become redundant if their (currently unregistered) subtags were to be 763 registered (as variants, for example). In other cases, although the 764 subtags match the language tag pattern, the meaning assigned to the 765 various subtags is prohibited by rules elsewhere in this document. 766 Those tags can never become redundant. 768 The remaining grandfathered tags are "irregular" and do not match the 769 'langtag' production. These are listed in the 'irregular' production 770 in Figure 1. These grandfathered tags can never become redundant. 771 Many of these tags have been superseded by other registrations: their 772 record contains a Preferred-Value field that really ought to be used 773 to form language tags representing that value. 775 2.2.9. Classes of Conformance 777 Implementations sometimes need to describe their capabilities with 778 regard to the rules and practices described in this document. Tags 779 can be checked or verified in a number of ways, but two particular 780 classes of tag conformance are formally defined here. 782 A tag is considered "well-formed" if it conforms to the ABNF 783 (Section 2.1). Note that irregular grandfathered tags are now listed 784 in the 'irregular' production. 786 A tag is considered "valid" if it satisfies these conditions: 788 o The tag is well-formed. 790 o The tag is either a grandfathered tag, or all of its language, 791 script, region, and variant subtags appear in the IANA language 792 subtag registry as of the particular registry date. 794 o There are no duplicate singleton (extension) subtags and no 795 duplicate variant subtags. 797 Note that a tag's validity depends on the date of the registry used 798 to validate the tag. A more recent copy of the registry might 799 contain a subtag that an older version does not. 801 A tag is considered "valid" for a given extension (Section 3.7) (as 802 of a particular version, revision, and date) if it meets the criteria 803 for "valid" above and also satisfies this condition: 805 Each subtag used in the extension part of the tag is valid 806 according to the extension. 808 Some older implementations consider a tag "well-formed" if it matches 809 the ABNF in [RFC4646]. In that version, a well-formed tag could 810 contain a sequence matching the obsolete 'extlang' production. Other 811 than a few grandfathered tags (which are handled separately), no 812 valid tags have ever matched that pattern. The difference between 813 that ABNF and Figure 1 is that the language production is replaced as 814 follows: 816 obs-primary-language = (2*3ALPHA [ extlang ]) ; shortest ISO 639 code 817 / 4ALPHA ; reserved for future use 818 / 5*8ALPHA ; registered language subtag 820 extlang = *3("-" 3ALPHA) ; removed in this version 822 Figure 2: Obsolete Language ABNF 824 Older language tag implementations sometimes reference [RFC3066]. 825 Again, all valid tags under that version also match this document's 826 language tag ABNF. However, a wider array of tags could be 827 considered "well-formed" under that document. The 'Language-Tag' 828 production used in that document matches the following: 830 obs-language-tag = primary-subtag *( "-" subtag ) 831 primary-subtag = 1*8ALPHA 832 subtag = 1*8(ALPHA / DIGIT) 834 Figure 3: RFC 3066 Language Tag Syntax 836 Language tags may be well-formed in terms of syntax but not valid in 837 terms of content. Users MUST NOT assign and use their own subtags, 838 other than private-use sequences (such as "en-x-personal") or by 839 using subtags designated as private-use in the registry (such as 840 "no-QQ", where 'QQ' is one of a range of private-use ISO 3166-1 841 codes). Not only is such assignment nonconformant, it also risks 842 collision with a future possible assignment. The private use subtags 843 and sequences are designed for this case. 845 3. Registry Format and Maintenance 847 This section defines the Language Subtag Registry and the maintenance 848 and update procedures associated with it, as well as a registry for 849 extensions to language tags (Section 3.7). 851 The Language Subtag Registry contains a comprehensive list of all of 852 the subtags valid in language tags. This allows implementers a 853 straightforward and reliable way to validate language tags. The 854 Language Subtag Registry will be maintained so that, except for 855 extension subtags, it is possible to validate all of the subtags that 856 appear in a language tag under the provisions of this document or its 857 revisions or successors. In addition, the meaning of the various 858 subtags will be unambiguous and stable over time. (The meaning of 859 private use subtags, of course, is not defined by the IANA registry.) 861 3.1. Format of the IANA Language Subtag Registry 863 The IANA Language Subtag Registry ("the registry") is a machine- 864 readable file in the format described in this section, plus copies of 865 the registration forms approved in accordance with the process 866 described in Section 3.5. 868 Note: The existing registration forms for grandfathered and redundant 869 tags taken from RFC 3066 have been maintained as part of the obsolete 870 RFC 3066 registry. The subtags added to the registry by either 871 [RFC4645] or [registry-update] do not have separate registration 872 forms (so no forms are archived for these additions). 874 3.1.1. File Format 876 The registry consists of a series of records stored in the record-jar 877 format (described in [record-jar]). Each record, in turn, consists 878 of a series of fields that describe the various subtags and tags. 879 The registry is a Unicode [Unicode] text file, using the UTF-8 880 [RFC3629] character encoding. 882 Each field can be considered a single, logical line of Unicode 883 [Unicode] characters, comprising a field-name and a field-body 884 separated by a COLON character (%x3A). Each field is terminated by 885 the newline sequence CRLF. The text in each field MUST be in Unicode 886 Normalization Form C (NFC). 888 A collection of fields forms a 'record'. Records are separated by 889 lines containing only the sequence "%%" (%x25.25). 891 Although fields are logically a single line of text, each line of 892 text in the file format is limited to 72 bytes in length. To 893 accommodate this, the field-body can be split into a multiple-line 894 representation; this is called "folding". Folding is done according 895 to customary conventions for line-wrapping. This is typically on 896 whitespace boundaries, but can occur between other characters when 897 the value does not include spaces, such as when a language does not 898 use whitespace between words. In any event, there MUST NOT be breaks 899 inside a multibyte UTF-8 sequence nor in the middle of a combining 900 character sequence. For more information, see [UAX14]. 902 Although the file format uses the UTF-8 encoding, unless otherwise 903 indicated, fields are restricted to the printable characters from the 904 US-ASCII [ISO646] repertoire. 906 The format of the registry is described by the following ABNF (per 907 [RFC5234]): 909 registry = record *("%%" CRLF record) 910 record = 1*( field-name *SP ":" *SP field-body CRLF ) 911 field-name = (ALPHA / DIGIT) [*(ALPHA / DIGIT / "-") (ALPHA / DIGIT)] 912 field-body = *([[*SP CRLF] 1*SP] 1*CHARS) 913 CHARS = (%x21-10FFFF) ; Unicode code points 915 Figure 4: Registry Format ABNF 917 The sequence '..' (%x2E.2E) in a field-body denotes a range of 918 values. Such a range represents all subtags of the same length that 919 are in alphabetic or numeric order within that range, including the 920 values explicitly mentioned. For example 'a..c' denotes the values 921 'a', 'b', and 'c' and '11..13' denotes the values '11', '12', and 922 '13'. 924 All fields whose field-body contains a date value use the "full-date" 925 format specified in [RFC3339]. For example: "2004-06-28" represents 926 June 28, 2004, in the Gregorian calendar. 928 3.1.2. Record Definitions 930 There are three types of records in the registry: "File-Date", 931 "Subtag", and "Tag" records. 933 The first record in the registry is a "File-Date" record. This 934 record contains the single field whose field-name is "File-Date" (see 935 Figure 4). The field-body of this record contains the last 936 modification date of this copy of the registry, making it possible to 937 compare different versions of the registry. The registry on the IANA 938 website is the most current. Versions with an older date than that 939 one are not up-to-date. 941 File-Date: 2004-06-28 942 %% 944 Figure 5: Example of the File-Date Record 946 Subsequent records represent either subtags or tags in the registry. 947 "Subtag" records contain a field with a field-name of "Subtag", 948 while, unsurprisingly, "Tag" records contain a field with a field- 949 name of "Tag". Each of the fields in each record MUST occur no more 950 than once, unless otherwise noted below. Each record MUST contain 951 the following fields: 953 o 'Type' 955 * Type's field-body MUST consist of one of the following strings: 956 "language", "script", "region", "variant", "grandfathered", and 957 "redundant" and denotes the type of tag or subtag. 959 o Either 'Subtag' or 'Tag' 961 * Subtag's field-body contains the subtag being defined. This 962 field MUST only appear in records of whose 'Type' has one of 963 these values: "language", "script", "region", or "variant". 965 * Tag's field-body contains a complete language tag. This field 966 MUST only appear in records whose 'Type' has one of these 967 values: "grandfathered" or "redundant". Note that the field- 968 body will always follow the 'grandfathered' production in the 969 ABNF in Section 2.1 971 o Description 973 * Description's field-body contains a non-normative description 974 of the subtag or tag. 976 o Added 978 * Added's field-body contains the date the record was registered 979 or, in the case of grandfathered or redundant tags, the date 980 the corresponding tag was registered under the rules of 981 [RFC1766] or [RFC3066]. 983 Each record MAY also contain the following fields: 985 o Preferred-Value 987 * For fields of type 'script', 'region', and 'variant', 988 'Preferred-Value' contains the subtag of the same 'Type' that 989 is preferred for forming the language tag. 991 * For fields of type 'language', 'Preferred-Value' contains the 992 primary language subtag that is preferred when forming the 993 language tag. 995 * For fields of type 'grandfathered' and 'redundant', 'Preferred- 996 Value' contains a canonical mapping to a complete language tag. 998 o Deprecated 1000 * Deprecated's field-body contains the date the record was 1001 deprecated. In some cases this value is before that of the 1002 associated 'Added' field in the registry. 1004 o Prefix 1006 * Prefix's field-body contains a language tag with which this 1007 subtag MAY be used to form a new language tag, perhaps with 1008 other subtags as well. The Prefix's subtags appear before the 1009 subtag. This field MUST only appear in records whose 'Type' 1010 field-body is 'variant'. For example, the 'Prefix' for the 1011 variant 'nedis' is 'sl', meaning that the tags "sl-nedis" and 1012 "sl-IT-nedis" are appropriate while the tag "is-nedis" is not. 1014 o Comments 1016 * Comments's field-body contains additional information about the 1017 subtag, as deemed appropriate for understanding the registry 1018 and implementing language tags using the subtag or tag. 1020 o Suppress-Script 1022 * Suppress-Script's field-body contains a script subtag that 1023 SHOULD NOT be used to form language tags with the associated 1024 primary language subtag. This field MUST only appear in 1025 records whose 'Type' field-body is 'language'. See 1026 Section 4.1. 1028 o Macrolanguage 1030 * Macrolanguage's field-body contains a primary language subtag 1031 defined by ISO 639 as a "macrolanguage" that encompasses this 1032 language subtag. This field MUST only appear in records whose 1033 'Type' field-body is 'language'. 1035 Future versions of this document might add additional fields to the 1036 registry, so implementations SHOULD ignore fields found in the 1037 registry that are not defined in this document. 1039 3.1.3. Subtag and Tag Fields 1041 The 'Subtag' field MUST NOT use uppercase letters to form the subtag, 1042 with two exceptions. Subtags whose 'Type' field is 'script' (in 1043 other words, subtags defined by ISO 15924) MUST use titlecase. 1044 Subtags whose 'Type' field is 'region' (in other words, the non- 1045 numeric region subtags defined by ISO 3166-1) MUST use all uppercase. 1046 These exceptions mirror the use of case in the underlying standards. 1048 Each subtag in the tags contained in a 'Tag' field MUST be formatted 1049 using the rules in the preceding paragraph. That is, all subtags are 1050 lowercase except for subtags that represent script or region codes. 1052 3.1.4. Description Field 1054 The field 'Description' contains a description of the tag or subtag 1055 in the record. The 'Description' field MAY appear more than once per 1056 record, that is, there can be multiple descriptions for a given 1057 record. The 'Description' field MAY include the full range of 1058 Unicode characters. At least one of the 'Description' fields MUST be 1059 written or transcribed into the Latin script; additional 1060 'Description' fields MAY also include a description in a non-Latin 1061 script. Each 'Description' field MUST be unique, both within the 1062 record in which it appears and for the collection of records of the 1063 same type. Moreover, formatting variations of the same description 1064 MUST NOT occur in that specific record or in any other record of the 1065 same type. For example, while the ISO 639-1 code 'fy' contains both 1066 the descriptions "Western Frisian" and "Frisian, Western", only one 1067 of these descriptions appears in the registry. 1069 The 'Description' field is used for identification purposes. It 1070 doesn't necessarily represent the actual native name of the item in 1071 the record, nor are any of the descriptions guaranteed to be in any 1072 particular language (such as English or French, for example). 1074 For subtags taken from a source standard (such as ISO 639 or ISO 1075 15924), the 'Description' value(s) SHOULD also be taken from the 1076 source standard. Multiple descriptions in the source standard MUST 1077 be split into separate 'Description' fields. The source standard's 1078 descriptions MAY be edited, either prior to insertion or via the 1079 registration process. For fields of type 'language', the first 1080 'Description' field appearing in the Registry corresponds to the 1081 Reference Name assigned by ISO 639-3. This helps facilitate cross- 1082 referencing between ISO 639 and the registry. 1084 When creating or updating a record due to the action of one of the 1085 source standards, the Language Subtag Reviewer SHOULD remove 1086 duplicate or redundant descriptions and MAY edit descriptions to 1087 correct irregularities in formatting (such as misspellings, 1088 inappropriate apostrophes or other punctuation, or excessive or 1089 missing spaces) prior to submitting the proposed record to the ietf- 1090 languages list. 1092 Note: Descriptions in registry entries that correspond to ISO 639, 1093 ISO 15924, ISO 3166-1, or UN M.49 codes are intended only to indicate 1094 the meaning of that identifier as defined in the source standard at 1095 the time it was added to the registry. The description does not 1096 replace the content of the source standard itself. The descriptions 1097 are not intended to be the localized English names for the subtags. 1098 Localization or translation of language tag and subtag descriptions 1099 is out of scope of this document. 1101 Descriptions SHOULD contain all and only that information necessary 1102 to distinguish one subtag from others that it might be confused with. 1103 They are not intended to provide general background information, nor 1104 to provide all possible alternate names or designations. 1106 3.1.5. Deprecated Field 1108 The field 'Deprecated' MAY be added, changed, or removed from any 1109 record via the maintenance process described in Section 3.3 or via 1110 the registration process described in Section 3.5. Usually, the 1111 addition of a 'Deprecated' field is due to the action of one of the 1112 standards bodies, such as ISO 3166, withdrawing a code. Although 1113 valid in language tags, subtags and tags with a 'Deprecated' field 1114 are deprecated and validating processors SHOULD NOT generate these 1115 subtags. Note that a record that contains a 'Deprecated' field and 1116 no corresponding 'Preferred-Value' field has no replacement mapping. 1118 In some historical cases, it might not have been possible to 1119 reconstruct the original deprecation date. For these cases, an 1120 approximate date appears in the registry. Some subtags and some 1121 grandfathered or redundant tags were deprecated before the initial 1122 creation of the registry. The exact rules for this appear in Section 1123 2 of [RFC4645]. Note that these records have a 'Deprecated' field 1124 with an earlier date then the corresponding 'Added' field! 1126 3.1.6. Preferred-Value Field 1128 The field 'Preferred-Value' contains a mapping between the record in 1129 which it appears and another tag or subtag. The value in this field 1130 is strongly RECOMMENDED as the best choice to represent the value of 1131 this record when selecting a language tag. These values form three 1132 groups: 1134 1. ISO 639 language codes that were later withdrawn in favor of 1135 other codes. These values are mostly a historical curiosity. 1137 2. Codes that have been withdrawn in favor of a new code. In 1138 particular, this applies to region subtags taken from ISO 3166-1, 1139 because sometimes a country will change its name or 1140 administration in such a way that warrants a new region code. In 1141 some cases, countries have reverted to an older name, which might 1142 already be encoded. 1144 3. Tags or subtags that have become obsolete because the values they 1145 represent were later encoded. Many of the grandfathered or 1146 redundant tags were later encoded by ISO 639, for example, and 1147 fit this pattern. 1149 Records that contain a 'Preferred-Value' field MUST also have a 1150 'Deprecated' field. This field contains the date on which the tag or 1151 subtag was deprecated in favor of the preferred value. 1153 Note that 'Preferred-Value' mappings in records of type 'region' 1154 sometimes do not represent exactly the same meaning as the original 1155 value. There are many reasons for a country code to be changed, and 1156 the effect this has on the formation of language tags will depend on 1157 the nature of the change in question. 1159 A 'Preferred-Value' MAY be added to, changed, or removed from records 1160 according to the rules in Section 3.3. Addition, modification, or 1161 removal of a 'Preferred-Value' field in a record does not imply that 1162 content using the affected subtag needs to be retagged. 1164 The 'Preferred-Value' field in records of type "grandfathered" and 1165 "redundant" contains whole language tags that are strongly 1166 RECOMMENDED for use in place of the record's value. In many cases, 1167 these mappings were created via deprecation of the tags during the 1168 period before [RFC4646] was adopted. For example, the tag "no-nyn" 1169 was deprecated in favor of the ISO 639-1-defined language code 'nn'. 1171 Usually the addition, removal, or change of a Preferred-Value field 1172 for a subtag is done to reflect changes in one of the source 1173 standards. For example, if an ISO 3166-1 region code is deprecated 1174 in favor of another code, that SHOULD result in the addition of a 1175 Preferred-Value field. 1177 Changes to one subtag MAY affect other subtags as well: when 1178 proposing changes to the registry, the Language Subtag Reviewer will 1179 review the registry for such effects and propose the necessary 1180 changes using the process in Section 3.5, although anyone MAY request 1181 such changes. For example: 1183 Suppose that subtag 'XX' has a Preferred-Value of 'YY'. If 'YY' 1184 later changes to have a Preferred-Value of 'ZZ', then the 1185 Preferred-Value for 'XX' MUST also change to be 'ZZ'. 1187 Suppose that a registered language subtag 'dialect' represents a 1188 language not yet available in any part of ISO 639. The later 1189 addition of a corresponding language code in ISO 639 SHOULD result 1190 in the addition of a Preferred-Value for 'dialect'. 1192 3.1.7. Prefix Field 1194 The 'Prefix' field contains an extended language range whose subtags 1195 are appropriate to use with this subtag: each of the subtags in one 1196 of the subtag's Prefix fields SHOULD appear before the variant in a 1197 valid tag. For example, the variant subtag '1996' has a 'Prefix' 1198 field of "de". This means that tags starting with the sequence "de-" 1199 are appropriate with this subtag, so "de-Latg-1996" and "de-CH-1996" 1200 are both acceptable, while the tag "fr-1996" is an inappropriate 1201 choice. 1203 The field of type 'Prefix' MUST NOT be removed from any record. The 1204 field-body for this type of field MAY be modified, but only if the 1205 modification broadens the meaning of the subtag. That is, the field- 1206 body can be replaced only by a prefix of itself. For example, the 1207 Prefix "be-Latn" (Belarusian, Latin script) could be replaced by the 1208 Prefix "be" (Belarusian) but not by the Prefix "ru-Latn" (Russian, 1209 Latin script). 1211 Records of type 'variant' MAY have more than one field of type 1212 'Prefix'. Additional fields of this type MAY be added to a 'variant' 1213 record via the registration process. 1215 The field-body of the 'Prefix' field MUST NOT conflict with any 1216 'Prefix' already registered for a given record. Such a conflict 1217 would occur when no valid tag could be constructed that would contain 1218 the prefix, such as when two subtags each have a 'Prefix' that 1219 contains the other subtag. For example, suppose that the subtag 1220 'avariant' has the prefix "es-bvariant". Then the subtag 'bvariant' 1221 cannot given the prefix 'avariant', for that would require a tag of 1222 the form "es-avariant-bvariant-avariant", which would not be valid. 1224 3.1.8. Suppress-Script Field 1226 The field 'Suppress-Script' contains a script subtag (whose record 1227 appears in the registry). The field 'Suppress-Script' MUST only 1228 appear in records whose 'Type' field-body is 'language'. This field 1229 MUST NOT appear more than one time in a record. This field indicates 1230 a script used to write the overwhelming majority of documents for the 1231 given language. This script code therefore adds no distinguishing 1232 information to a language tag. This helps ensure greater 1233 compatibility between the language tags generated according to the 1234 rules in this document and language tags and tag processors or 1235 consumers based on RFC 3066 by indicating that the script subtag 1236 SHOULD NOT be used for most documents in that language. For example, 1237 virtually all Icelandic documents are written in the Latin script, 1238 making the subtag 'Latn' redundant in the tag "is-Latn". 1240 Many language subtag records do not have a Suppress-Script field. 1241 The lack of a Suppress-Script might indicate that the language is 1242 customarily written in more than one script or that the language is 1243 not customarily written at all. It might also mean that sufficient 1244 information was not available when the record was created and thus 1245 remains a candidate for future registration. 1247 3.1.9. Macrolanguage Field 1249 The field 'Macrolanguage' contains a primary language subtag (whose 1250 record appears in the registry). This field indicates a language 1251 that encompasses this subtag's language according to assignments made 1252 by ISO 639-3. 1254 ISO 639-3 labels some languages in the registry as "macrolanguages". 1255 ISO 639-3 defines the term "Macrolanguage" to mean "clusters of 1256 closely-related language varieties that [...] can be considered 1257 distinct individual languages, yet in certain usage contexts a single 1258 language identity for all is needed". These correspond to codes 1259 registered in ISO 639-2 as individual languages that were found to 1260 correspond to more than one language in ISO 639-3. 1262 A language contained within a macrolanguage is called an "encompassed 1263 language". The record for each encompassed language contains a 1264 'Macrolanguage' field in the registry; the macrolanguages themselves 1265 are not specially marked. Note that some encompassed languages have 1266 ISO 639-1 or ISO 639-2 codes. 1268 The Macrolanguage field can only occur in records of type 'language'. 1269 Only values assigned by ISO 639-3 will be considered for inclusion. 1270 Macrolanguage fields MAY be added or removed via the normal 1271 registration process whenever ISO 639-3 defines new values or 1272 withdraws old values. Macrolanguages are informational, and MAY be 1273 removed or changed if ISO 639-3 changes the values. For more 1274 information on the use of this field and choosing between 1275 macrolanguage and encompassed language subtags, see Section 4.1.1. 1277 For example, the language subtags 'nb' (Norwegian Bokmal) and 'nn' 1278 (Norwegian Nynorsk) each have a Macrolanguage entry of 'no' 1279 (Norwegian). For more information see Section 4.1. 1281 3.1.10. Comments Field 1283 The field 'Comments' conveys additional information about the record 1284 and MAY appear more than once per record. The field-body MAY include 1285 the full range of Unicode characters and is not restricted to any 1286 particular script. This field MAY be inserted or changed via the 1287 registration process and no guarantee of stability is provided. 1289 The content of this field is not restricted, except by the need to 1290 register the information, the suitability of the request, and by 1291 reasonable practical size limitations. The primary reason for the 1292 Comments field is subtag identification: to help distinguish the 1293 subtag from others with which it might be confused. In particular, 1294 large amounts of information about the use, history, or general 1295 background of a subtag are frowned upon as these generally belong and 1296 are encouraged in registration request forms themselves, but do not 1297 belong in the registry record proper. 1299 3.2. Language Subtag Reviewer 1301 The Language Subtag Reviewer moderates the ietf-languages mailing 1302 list, responds to requests for registration, and performs the other 1303 registry maintenance duties described in Section 3.3. Only the 1304 Language Subtag Reviewer is permitted to request IANA to change, 1305 update, or add records to the Language Subtag Registry. The Language 1306 Subtag Reviewer MAY delegate list moderation and other clerical 1307 duties as needed. 1309 The Language Subtag Reviewer is appointed by the IESG for an 1310 indefinite term, subject to removal or replacement at the IESG's 1311 discretion. The IESG will solicit nominees for the position (upon 1312 adoption of this document or upon a vacancy) and then solicit 1313 feedback on the nominees' qualifications. Qualified candidates 1314 should be familiar with BCP 47 and its requirements; be willing to 1315 fairly, responsively, and judiciously administer the registration 1316 process; and be suitably informed about the issues of language 1317 identification so that the reviewer can assess the claims and draw 1318 upon the contributions of language experts and subtag requesters. 1320 The subsequent performance or decisions of the Language Subtag 1321 Reviewer MAY be appealed to the IESG under the same rules as other 1322 IETF decisions (see [RFC2026]). The IESG can reverse or overturn the 1323 decisions of the Language Subtag Reviewer, provide guidance, or take 1324 other appropriate actions. 1326 3.3. Maintenance of the Registry 1328 Maintenance of the registry requires that as codes are assigned or 1329 withdrawn by ISO 639, ISO 15924, ISO 3166, and UN M.49, the Language 1330 Subtag Reviewer MUST evaluate each change and determine the 1331 appropriate course of action according to the rules in this document. 1332 Such updates follow the registration process described in 1333 Section 3.5. Usually the Language Subtag Reviewer will start the 1334 process for the new or updated record by filling in the registration 1335 form and submitting it. If a change to one of these standards takes 1336 place and the Language Subtag Reviewer does not do this in a timely 1337 manner, then any interested party MAY submit the form. Thereafter 1338 the registration process continues normally. 1340 Note that some registrations affect other subtags--perhaps more than 1341 one--as when a region subtag is being deprecated in favor of a new 1342 value. The Language Subtag Reviewer is responsible for ensuring that 1343 any such changes are properly registered, with each change requiring 1344 its own registration form. 1346 The Language Subtag Reviewer MUST ensure that new subtags meet the 1347 requirements elsewhere in this document (and most especially in 1348 Section 3.4) or submit an appropriate registration form for an 1349 alternate subtag as described in that section. Each individual 1350 subtag affected by a change MUST be sent to the ietf-languages list 1351 with its own registration form and in a separate message. 1353 3.4. Stability of IANA Registry Entries 1355 The stability of entries and their meaning in the registry is 1356 critical to the long-term stability of language tags. The rules in 1357 this section guarantee that a specific language tag's meaning is 1358 stable over time and will not change. 1360 These rules specifically deal with how changes to codes (including 1361 withdrawal and deprecation of codes) maintained by ISO 639, ISO 1362 15924, ISO 3166, and UN M.49 are reflected in the IANA Language 1363 Subtag Registry. Assignments to the IANA Language Subtag Registry 1364 MUST follow the following stability rules: 1366 1. Values in the fields 'Type', 'Subtag', 'Tag', and 'Added' MUST 1367 NOT be changed and are guaranteed to be stable over time. 1369 2. Values in the fields 'Preferred-Value' and 'Deprecated' MAY be 1370 added, altered, or removed via the registration process. These 1371 changes SHOULD be limited to changes necessary to mirror changes 1372 in one of the underlying standards (ISO 639, ISO 15924, ISO 1373 3166-1, or UN M.49) and typically alteration or removal of a 1374 Preferred-Value is limited specifically to region codes. 1376 3. Values in the 'Description' field MUST NOT be changed in a way 1377 that would invalidate previously-existing tags. They MAY be 1378 broadened somewhat in scope, changed to add information, or 1379 adapted to the most common modern usage. For example, countries 1380 occasionally change their names; a historical example of this 1381 would be "Upper Volta" changing to "Burkina Faso". 1383 4. Values in the field 'Prefix' MAY be added to records of type 1384 'variant' via the registration process. If a prefix is added to 1385 a variant record, 'Comment' fields SHOULD be used to explain 1386 different usages with the various prefixes. 1388 5. Values in the field 'Prefix' in records of type 'variant' MAY be 1389 modified, so long as the modifications broaden the set of 1390 prefixes. That is, a prefix MAY be replaced by one of its own 1391 prefixes. For example, the prefix "en-US" could be replaced by 1392 "en", but not by the prefixes "en-Latn", "fr", or "en-US-boont". 1393 If one of those prefixes were needed, a new Prefix SHOULD be 1394 registered. 1396 6. Values in the field 'Prefix' MUST NOT be removed. 1398 7. The field 'Comments' MAY be added, changed, modified, or removed 1399 via the registration process or any of the processes or 1400 considerations described in this section. 1402 8. The field 'Suppress-Script' MAY be added or removed via the 1403 registration process. 1405 9. The field 'Macrolanguage' MAY be added or removed via the 1406 registration process, but only in response to changes made by 1407 ISO 639. The Macrolanguage field appears whenever a language 1408 has a corresponding Macrolanguage in ISO 639. That is, the 1409 macrolanguage fields in the registry exactly match those of ISO 1410 639. No other macrolanguage mappings will be considered for 1411 registration. 1413 10. Codes assigned by ISO 639-1 that do not conflict with existing 1414 two-letter primary language subtags and which have no 1415 corresponding three-letter primary defined in the registry are 1416 entered into the IANA registry as new records of type 1417 'language'. 1419 11. Codes assigned by ISO 639-2 that do not conflict with existing 1420 three-letter primary language subtags are entered into the IANA 1421 registry as new records of type 'language'. 1423 12. Codes assigned by ISO 639-3 that do not conflict with existing 1424 three-letter primary language subtags are entered into the IANA 1425 registry as new primary language records. 1427 13. Codes assigned by ISO 15924 and ISO 3166-1 that do not conflict 1428 with existing subtags of the associated type and whose meaning 1429 is not the same as an existing subtag of the same type are 1430 entered into the IANA registry as new records. 1432 14. Codes assigned by ISO 639, ISO 15924, or ISO 3166-1 that are 1433 withdrawn by their respective maintenance or registration 1434 authority remain valid in language tags. A 'Deprecated' field 1435 containing the date of withdrawal MUST be added to the record. 1436 If a new record of the same type is added that represents a 1437 replacement value, then a 'Preferred-Value' field MAY also be 1438 added. The registration process MAY be used to add comments 1439 about the withdrawal of the code by the respective standard. 1441 Example The region code 'TL' was assigned to the country 1442 'Timor-Leste', replacing the code 'TP' (which was assigned to 1443 'East Timor' when it was under administration by Portugal). 1444 The subtag 'TP' remains valid in language tags, but its 1445 record contains the a 'Preferred-Value' of 'TL' and its field 1446 'Deprecated' contains the date the new code was assigned 1447 ('2004-07-06'). 1449 15. Codes assigned by ISO 639, ISO 15924, or ISO 3166-1 that 1450 conflict with existing subtags of the associated type, including 1451 subtags that are deprecated, MUST NOT be entered into the 1452 registry. The following additional considerations apply to 1453 subtag values that are reassigned: 1455 A. For ISO 639 codes, if the newly assigned code's meaning is 1456 not represented by a subtag in the IANA registry, the 1457 Language Subtag Reviewer, as described in Section 3.5, SHALL 1458 prepare a proposal for entering in the IANA registry as soon 1459 as practical a registered language subtag as an alternate 1460 value for the new code. The form of the registered language 1461 subtag will be at the discretion of the Language Subtag 1462 Reviewer and MUST conform to other restrictions on language 1463 subtags in this document. 1465 B. For all subtags whose meaning is derived from an external 1466 standard (that is, by ISO 639, ISO 15924, ISO 3166-1, or UN 1467 M.49), if a new meaning is assigned to an existing code and 1468 the new meaning broadens the meaning of that code, then the 1469 meaning for the associated subtag MAY be changed to match. 1470 The meaning of a subtag MUST NOT be narrowed, however, as 1471 this can result in an unknown proportion of the existing 1472 uses of a subtag becoming invalid. Note: ISO 639 1473 registration authority (RA) has adopted a similar stability 1474 policy. 1476 C. For ISO 15924 codes, if the newly assigned code's meaning is 1477 not represented by a subtag in the IANA registry, the 1478 Language Subtag Reviewer, as described in Section 3.5, SHALL 1479 prepare a proposal for entering in the IANA registry as soon 1480 as practical a registered variant subtag as an alternate 1481 value for the new code. The form of the registered variant 1482 subtag will be at the discretion of the Language Subtag 1483 Reviewer and MUST conform to other restrictions on variant 1484 subtags in this document. 1486 D. For ISO 3166-1 codes, if the newly assigned code's meaning 1487 is associated with the same UN M.49 code as another 'region' 1488 subtag, then the existing region subtag remains as the 1489 preferred value for that region and no new entry is created. 1490 A comment MAY be added to the existing region subtag 1491 indicating the relationship to the new ISO 3166-1 code. 1493 E. For ISO 3166-1 codes, if the newly assigned code's meaning 1494 is associated with a UN M.49 code that is not represented by 1495 an existing region subtag, then the Language Subtag 1496 Reviewer, as described in Section 3.5, SHALL prepare a 1497 proposal for entering the appropriate UN M.49 country code 1498 as an entry in the IANA registry. 1500 F. For ISO 3166-1 codes, if there is no associated UN numeric 1501 code, then the Language Subtag Reviewer SHALL petition the 1502 UN to create one. If there is no response from the UN 1503 within ninety days of the request being sent, the Language 1504 Subtag Reviewer SHALL prepare a proposal for entering in the 1505 IANA registry as soon as practical a registered variant 1506 subtag as an alternate value for the new code. The form of 1507 the registered variant subtag will be at the discretion of 1508 the Language Subtag Reviewer and MUST conform to other 1509 restrictions on variant subtags in this document. This 1510 situation is very unlikely to ever occur. 1512 16. UN M.49 has codes for both countries and areas (such as '276' 1513 for Germany) and geographical regions and sub-regions (such as 1514 '150' for Europe). UN M.49 country or area codes for which 1515 there is no corresponding ISO 3166-1 code SHOULD NOT be 1516 registered, except as a surrogate for an ISO 3166-1 code that is 1517 blocked from registration by an existing subtag. If such a code 1518 becomes necessary, then the registration authority for ISO 1519 3166-1 SHOULD first be petitioned to assign a code to the 1520 region. If the petition for a code assignment by ISO 3166-1 is 1521 refused or not acted on in a timely manner, the registration 1522 process described in Section 3.5 MAY then be used to register 1523 the corresponding UN M.49 code. This way, UN M.49 codes remain 1524 available as the value of last resort in cases where ISO 3166-1 1525 reassigns a deprecated value in the registry. 1527 17. Stability provisions apply to grandfathered tags with this 1528 exception: should it become possible to compose one of the 1529 grandfathered tags from registered subtags, then the field 1530 'Type' in that record is changed from 'grandfathered' to 1531 'redundant'. Note that this will not affect language tags that 1532 match the grandfathered tag, since these tags will now match 1533 valid generative subtag sequences. For example, the variant 1534 subtag '1901' is registered, making the formerly-grandfathered 1535 tags such as "de-1901" and "de-AT-1901" redundant as a result. 1536 Of course, these tags, where applied to existing content or in 1537 existing implementations, remain valid (all of their subtags are 1538 in the registry, after all), while new tags or applications 1539 using these subtags become possible. 1541 Note: The redundant and grandfathered entries together are the 1542 complete list of tags registered under [RFC3066]. The redundant tags 1543 are those that can now be formed using the subtags defined in the 1544 registry together with the rules of Section 2.2. The grandfathered 1545 entries include those that can never be legal under those same 1546 provisions plus those tags that contain subtags not yet registered 1547 or, perhaps, inappropriate for registration. 1549 The set of redundant and grandfathered tags is permanent and stable: 1550 new entries in this section MUST NOT be added and existing entries 1551 MUST NOT be removed. Records of type 'grandfathered' MAY have their 1552 type converted to 'redundant'; see item 12 in Section 3.6 for more 1553 information. The decision-making process about which tags were 1554 initially grandfathered and which were made redundant is described in 1555 [RFC4645]. 1557 RFC 3066 tags that were deprecated prior to the adoption of [RFC4646] 1558 are part of the list of grandfathered tags, and their component 1559 subtags were not included as registered variants (although they 1560 remain eligible for registration). For example, the tag "art-lojban" 1561 was deprecated in favor of the language subtag 'jbo'. 1563 3.5. Registration Procedure for Subtags 1565 The procedure given here MUST be used by anyone who wants to use a 1566 subtag not currently in the IANA Language Subtag Registry. 1568 Only subtags of type 'language' and 'variant' will be considered for 1569 independent registration of new subtags. Subtags needed for 1570 stability and subtags necessary to keep the registry synchronized 1571 with ISO 639, ISO 15924, ISO 3166, and UN M.49 within the limits 1572 defined by this document also use this process, as described in 1573 Section 3.3. Stability provisions are described in Section 3.4. 1575 This procedure MAY also be used to register or alter the information 1576 for the 'Comments', 'Deprecated', 'Description', 'Prefix', 1577 'Preferred-Value', or 'Suppress-Script' fields in a subtag's record 1578 as described in Section 3.4. Changes to all other fields in the IANA 1579 registry are NOT permitted. 1581 Registering a new subtag or requesting modifications to an existing 1582 tag or subtag starts with the requester filling out the registration 1583 form reproduced below. Note that each response is not limited in 1584 size so that the request can adequately describe the registration. 1585 The fields in the "Record Requested" section SHOULD follow the 1586 requirements in Section 3.1. 1588 LANGUAGE SUBTAG REGISTRATION FORM 1589 1. Name of requester: 1590 2. E-mail address of requester: 1591 3. Record Requested: 1593 Type: 1594 Subtag: 1595 Description: 1596 Prefix: 1597 Preferred-Value: 1598 Deprecated: 1599 Suppress-Script: 1600 Macrolanguage: 1601 Comments: 1603 4. Intended meaning of the subtag: 1604 5. Reference to published description 1605 of the language (book or article): 1606 6. Any other relevant information: 1608 Figure 6: The Language Subtag Registration Form 1610 Examples of completed registration forms can be found in Appendix C 1611 or online at http://www.iana.org/assignments/lang-subtags-templates/. 1613 The subtag registration form MUST be sent to 1614 for a two-week review period before it can 1615 be submitted to IANA. If modifications are made to the request 1616 during the course of the registration process (such as corrections to 1617 meet the requirements in Section 3.1) the modified form MUST also be 1618 sent to at least one week prior to 1619 submission to IANA. 1621 The ietf-languages list is an open list and can be joined by sending 1622 a request to . The list can be 1623 hosted by IANA or by any third party at the request of IESG. 1625 Before forwarding a new registration to IANA, the Language Subtag 1626 Reviewer MUST ensure that all requirements in this document are met 1627 and that values in the 'Subtag' field match case according to the 1628 description in Section 3.1. The Reviewer MUST also ensure that an 1629 appropriate File-Date record is included in the request, to assist 1630 IANA when updating the registry (see Section 5.1). 1632 Some fields in both the registration form as well as the registry 1633 record itself permit the use of non-ASCII characters. Registration 1634 requests SHOULD use the UTF-8 encoding for consistency and clarity. 1635 However, since some mail clients do not support this encoding, other 1636 encodings MAY be used for the registration request. The Language 1637 Subtag Reviewer is responsible for ensuring that the proper Unicode 1638 characters appear in both the archived request form and the registry 1639 record. In the case of a transcription or encoding error by IANA, 1640 the Language Subtag Reviewer will request that the registry be 1641 repaired, providing any necessary information to assist IANA. 1643 Variant subtags are usually registered for use with a particular 1644 range of language tags. For example, the subtag 'rozaj' is intended 1645 for use with language tags that start with the primary language 1646 subtag "sl", since Resian is a dialect of Slovenian. Thus, the 1647 subtag 'rozaj' would be appropriate in tags such as "sl-Latn-rozaj" 1648 or "sl-IT-rozaj". This information is stored in the 'Prefix' field 1649 in the registry. Variant registration requests SHOULD include at 1650 least one 'Prefix' field in the registration form. 1652 The 'Prefix' field for a given registered subtag exists in the IANA 1653 registry as a guide to usage. Additional prefixes MAY be added by 1654 filing an additional registration form. In that form, the "Any other 1655 relevant information:" field MUST indicate that it is the addition of 1656 a prefix. 1658 Requests to add a prefix to a variant subtag that imply a different 1659 semantic meaning SHOULD be rejected. For example, a request to add 1660 the prefix "de" to the subtag 'nedis' so that the tag "de-nedis" 1661 represented some German dialect would be rejected. The 'nedis' 1662 subtag represents a particular Slovenian dialect and the additional 1663 registration would change the semantic meaning assigned to the 1664 subtag. A separate subtag SHOULD be proposed instead. 1666 The 'Description' field MUST contain a description of the tag being 1667 registered written or transcribed into the Latin script; it MAY also 1668 include a description in a non-Latin script. The 'Description' field 1669 is used for identification purposes and doesn't necessarily represent 1670 the actual native name of the language or variation or to be in any 1671 particular language. 1673 While the 'Description' field itself is not guaranteed to be stable 1674 and errata corrections MAY be undertaken from time to time, attempts 1675 to provide translations or transcriptions of entries in the registry 1676 itself will probably be frowned upon by the community or rejected 1677 outright, as changes of this nature have an impact on the provisions 1678 in Section 3.4. 1680 When the two-week period has passed, the Language Subtag Reviewer 1681 MUST take one of the following actions: 1683 o Explicitly accept the request and forward the form containing the 1684 record to be inserted or modified to iana@iana.org according to 1685 the procedure described in Section 3.3. 1687 o Explicitly reject the request because of significant objections 1688 raised on the list or due to problems with constraints in this 1689 document (which MUST be explicitly cited). 1691 o Extend the review period by granting an additional two-week 1692 increment to permit further discussion. After each two-week 1693 increment, the Language Subtag Reviewer MUST indicate on the list 1694 whether the registration has been accepted, rejected, or extended. 1696 Note that the Language Subtag Reviewer MAY raise objections on the 1697 list if he or she so desires. The important thing is that the 1698 objection MUST be made publicly. 1700 Sometimes the request needs to be modified as a result of discussion 1701 during the review period or due to requirements in this document. 1702 The applicant, Language Subtag Reviewer, or others are free to submit 1703 a modified version of the completed registration form, which will be 1704 considered in lieu of the original request with the explicit approval 1705 of the applicant. Such changes do not restart the two-week 1706 discussion period, although an application containing the final 1707 record submitted to IANA MUST appear on the list at least one week 1708 prior to the Language Subtag Reviewer forwarding the record to IANA. 1709 The applicant is also free to modify a rejected application with 1710 additional information and submit it again; this starts a new two- 1711 week comment period. 1713 Registrations initiated due to the provisions of Section 3.3 or 1714 Section 3.4 SHALL NOT be rejected altogether (since they have to 1715 ultimately appear in the registry) and SHOULD be completed as quickly 1716 as possible. The review process allows list members to comment on 1717 the specific information in the form and the record it contains and 1718 thus help ensure that it is correct and consistent. The Language 1719 Subtag Reviewer MAY reject a specific version of the form, but MUST 1720 include in the rejection a suitable replacement, extending the review 1721 period as described above, until the form is in a format worthy of 1722 reviewer's approval. 1724 Decisions made by the Language Subtag Reviewer MAY be appealed to the 1725 IESG [RFC2028] under the same rules as other IETF decisions 1726 [RFC2026]. This includes a decision to extend the review period or 1727 the failure to announce a decision in a clear and timely manner. 1729 The approved records appear in the Language Subtag Registry. The 1730 approved registration forms are available online under 1731 http://www.iana.org/assignments/lang-subtags-templates/. 1733 Updates or changes to existing records follow the same procedure as 1734 new registrations. The Language Subtag Reviewer decides whether 1735 there is consensus to update the registration following the two week 1736 review period; normally, objections by the original registrant will 1737 carry extra weight in forming such a consensus. 1739 Registrations are permanent and stable. Once registered, subtags 1740 will not be removed from the registry and will remain a valid way in 1741 which to specify a specific language or variant. 1743 Note: The purpose of the "Reference to published description" section 1744 in the registration form is to aid in verifying whether a language is 1745 registered or what language or language variation a particular subtag 1746 refers to. In most cases, reference to an authoritative grammar or 1747 dictionary of that language will be useful; in cases where no such 1748 work exists, other well-known works describing that language or in 1749 that language MAY be appropriate. The Language Subtag Reviewer 1750 decides what constitutes "good enough" reference material. This 1751 requirement is not intended to exclude particular languages or 1752 dialects due to the size of the speaker population or lack of a 1753 standardized orthography. Minority languages will be considered 1754 equally on their own merits. 1756 3.6. Possibilities for Registration 1758 Possibilities for registration of subtags or information about 1759 subtags include: 1761 o Primary language subtags for languages not listed in ISO 639 that 1762 are not variants of any listed or registered language MAY be 1763 registered. At the time this document was created, there were no 1764 examples of this form of subtag. Before attempting to register a 1765 language subtag, there MUST be an attempt to register the language 1766 with ISO 639. Subtags MUST NOT be registered for languages 1767 defined by codes that exist in ISO 639-1, ISO 639-2, or ISO 639-3, 1768 or that are under consideration by the ISO 639 registration 1769 authorities, or that have never been attempted for registration 1770 with those authorities. If ISO 639 has previously rejected a 1771 language for registration, it is reasonable to assume that there 1772 must be additional, very compelling evidence of need before it 1773 will be registered as a primary language subtag in the IANA 1774 registry (to the extent that it is very unlikely that any subtags 1775 will be registered of this type). 1777 o Dialect or other divisions or variations within a language, its 1778 orthography, writing system, regional or historical usage, 1779 transliteration or other transformation, or distinguishing 1780 variation MAY be registered as variant subtags. An example is the 1781 'rozaj' subtag (the Resian dialect of Slovenian). 1783 o The addition or maintenance of fields (generally of an 1784 informational nature) in Tag or Subtag records as described in 1785 Section 3.1 and subject to the stability provisions in 1786 Section 3.4. This includes descriptions, comments, deprecation 1787 and preferred values for obsolete or withdrawn codes, or the 1788 addition of script or macrolanguage information to primary 1789 language subtags. 1791 o The addition of records and related field value changes necessary 1792 to reflect assignments made by ISO 639, ISO 15924, ISO 3166-1, and 1793 UN M.49 as described in Section 3.4. 1795 Subtags proposed for registration that would cause all or part of a 1796 grandfathered tag to become redundant but whose meaning conflicts 1797 with or alters the meaning of the grandfathered tag MUST be rejected. 1799 This document leaves the decision on what subtags or changes to 1800 subtags are appropriate (or not) to the registration process 1801 described in Section 3.5. 1803 Note: four-character primary language subtags are reserved to allow 1804 for the possibility of alpha4 codes in some future addition to the 1805 ISO 639 family of standards. 1807 ISO 639 defines a for additions to and changes in the list of 1808 languages in ISO 639. This agency is: 1810 International Information Centre for Terminology (Infoterm) 1811 Aichholzgasse 6/12, AT-1120 1812 Wien, Austria 1813 Phone: +43 1 26 75 35 Ext. 312 Fax: +43 1 216 32 72 1815 ISO 639-2 defines a registration authority for additions to and 1816 changes in the list of languages in ISO 639-2. This agency is: 1818 Library of Congress 1819 Network Development and MARC Standards Office 1820 Washington, D.C. 20540 USA 1821 Phone: +1 202 707 6237 Fax: +1 202 707 0115 1822 URL: http://www.loc.gov/standards/iso639-2 1824 ISO 639-3 defines a registration authority for additions to and 1825 changes in the list of languages in ISO 639-3. This agency is: 1827 SIL International 1828 ISO 639-3 Registrar 1829 7500 W. Camp Wisdom Rd. 1830 Dallas, TX 75236 USA 1831 Phone: +1 972 708 7400, ext. 2293 Fax: +1 972 708 7546 1832 Email: iso639-3@sil.org 1833 URL: http://www.sil.org/iso639-3 1835 The maintenance agency for ISO 3166-1 (country codes) is: 1837 ISO 3166 Maintenance Agency 1838 c/o International Organization for Standardization 1839 Case postale 56 1840 CH-1211 Geneva 20 Switzerland 1841 Phone: +41 22 749 72 33 Fax: +41 22 749 73 49 1842 URL: http://www.iso.org/iso/en/prods-services/iso3166ma/index.html 1844 The registration authority for ISO 15924 (script codes) is: 1846 Unicode Consortium Box 391476 1847 Mountain View, CA 94039-1476, USA 1848 URL: http://www.unicode.org/iso15924 1850 The Statistics Division of the United Nations Secretariat maintains 1851 the Standard Country or Area Codes for Statistical Use and can be 1852 reached at: 1854 Statistical Services Branch 1855 Statistics Division 1856 United Nations, Room DC2-1620 1857 New York, NY 10017, USA 1858 Fax: +1-212-963-0623 1859 E-mail: statistics@un.org 1860 URL: http://unstats.un.org/unsd/methods/m49/m49alpha.htm 1862 3.7. Extensions and the Extensions Registry 1864 Extension subtags are those introduced by single-character subtags 1865 ("singletons") other than 'x'. They are reserved for the generation 1866 of identifiers that contain a language component and are compatible 1867 with applications that understand language tags. 1869 The structure and form of extensions are defined by this document so 1870 that implementations can be created that are forward compatible with 1871 applications that might be created using singletons in the future. 1872 In addition, defining a mechanism for maintaining singletons will 1873 lend stability to this document by reducing the likely need for 1874 future revisions or updates. 1876 Single-character subtags are assigned by IANA using the "IETF 1877 Consensus" policy defined by [RFC2434]. This policy requires the 1878 development of an RFC, which SHALL define the name, purpose, 1879 processes, and procedures for maintaining the subtags. The 1880 maintaining or registering authority, including name, contact email, 1881 discussion list email, and URL location of the registry, MUST be 1882 indicated clearly in the RFC. The RFC MUST specify or include each 1883 of the following: 1885 o The specification MUST reference the specific version or revision 1886 of this document that governs its creation and MUST reference this 1887 section of this document. 1889 o The specification and all subtags defined by the specification 1890 MUST follow the ABNF and other rules for the formation of tags and 1891 subtags as defined in this document. In particular, it MUST 1892 specify that case is not significant and that subtags MUST NOT 1893 exceed eight characters in length. 1895 o The specification MUST specify a canonical representation. 1897 o The specification of valid subtags MUST be available over the 1898 Internet and at no cost. 1900 o The specification MUST be in the public domain or available via a 1901 royalty-free license acceptable to the IETF and specified in the 1902 RFC. 1904 o The specification MUST be versioned, and each version of the 1905 specification MUST be numbered, dated, and stable. 1907 o The specification MUST be stable. That is, extension subtags, 1908 once defined by a specification, MUST NOT be retracted or change 1909 in meaning in any substantial way. 1911 o The specification MUST include in a separate section the 1912 registration form reproduced in this section (below) to be used in 1913 registering the extension upon publication as an RFC. 1915 o IANA MUST be informed of changes to the contact information and 1916 URL for the specification. 1918 IANA will maintain a registry of allocated single-character 1919 (singleton) subtags. This registry MUST use the record-jar format 1920 described by the ABNF in Section 3.1. Upon publication of an 1921 extension as an RFC, the maintaining authority defined in the RFC 1922 MUST forward this registration form to iesg@ietf.org, who MUST 1923 forward the request to iana@iana.org. The maintaining authority of 1924 the extension MUST maintain the accuracy of the record by sending an 1925 updated full copy of the record to iana@iana.org with the subject 1926 line "LANGUAGE TAG EXTENSION UPDATE" whenever content changes. Only 1927 the 'Comments', 'Contact_Email', 'Mailing_List', and 'URL' fields MAY 1928 be modified in these updates. 1930 Failure to maintain this record, maintain the corresponding registry, 1931 or meet other conditions imposed by this section of this document MAY 1932 be appealed to the IESG [RFC2028] under the same rules as other IETF 1933 decisions (see [RFC2026]) and MAY result in the authority to maintain 1934 the extension being withdrawn or reassigned by the IESG. 1935 %% 1936 Identifier: 1937 Description: 1938 Comments: 1939 Added: 1940 RFC: 1941 Authority: 1942 Contact_Email: 1943 Mailing_List: 1944 URL: 1945 %% 1947 Figure 7: Format of Records in the Language Tag Extensions Registry 1949 'Identifier' contains the single-character subtag (singleton) 1950 assigned to the extension. The Internet-Draft submitted to define 1951 the extension SHOULD specify which letter or digit to use, although 1952 the IESG MAY change the assignment when approving the RFC. 1954 'Description' contains the name and description of the extension. 1956 'Comments' is an OPTIONAL field and MAY contain a broader description 1957 of the extension. 1959 'Added' contains the date the extension's RFC was published in the 1960 "full-date" format specified in [RFC3339]. For example: 2004-06-28 1961 represents June 28, 2004, in the Gregorian calendar. 1963 'RFC' contains the RFC number assigned to the extension. 1965 'Authority' contains the name of the maintaining authority for the 1966 extension. 1968 'Contact_Email' contains the email address used to contact the 1969 maintaining authority. 1971 'Mailing_List' contains the URL or subscription email address of the 1972 mailing list used by the maintaining authority. 1974 'URL' contains the URL of the registry for this extension. 1976 The determination of whether an Internet-Draft meets the above 1977 conditions and the decision to grant or withhold such authority rests 1978 solely with the IESG and is subject to the normal review and appeals 1979 process associated with the RFC process. 1981 Extension authors are strongly cautioned that many (including most 1982 well-formed) processors will be unaware of any special relationships 1983 or meaning inherent in the order of extension subtags. Extension 1984 authors SHOULD avoid subtag relationships or canonicalization 1985 mechanisms that interfere with matching or with length restrictions 1986 that sometimes exist in common protocols where the extension is used. 1987 In particular, applications MAY truncate the subtags in doing 1988 matching or in fitting into limited lengths, so it is RECOMMENDED 1989 that the most significant information be in the most significant 1990 (left-most) subtags and that the specification gracefully handle 1991 truncated subtags. 1993 When a language tag is to be used in a specific, known, protocol, it 1994 is RECOMMENDED that the language tag not contain extensions not 1995 supported by that protocol. In addition, note that some protocols 1996 MAY impose upper limits on the length of the strings used to store or 1997 transport the language tag. 1999 3.8. Update of the Language Subtag Registry 2001 Upon adoption of this document the IANA Language Subtag Registry will 2002 need an update so that it contains the complete set of subtags valid 2003 in a language tag. This collection of subtags, along with a 2004 description of the process used to create it, is described by 2005 [registry-update]. IANA will publish the updated version of the 2006 registry described by this document using the instructions and 2007 content of [registry-update]. Once published by IANA, the 2008 maintenance procedures, rules, and registration processes described 2009 in this document will be available for new registrations or updates. 2011 Registrations that are in process under the rules defined in 2012 [RFC4646] when this document is adopted MUST be completed under the 2013 rules contained in this document. 2015 4. Formation and Processing of Language Tags 2017 This section addresses how to use the information in the registry 2018 with the tag syntax to choose, form, and process language tags. 2020 4.1. Choice of Language Tag 2022 The guiding principle in forming language tags is to "tag content 2023 wisely." Sometimes there is a choice between several possible tags 2024 for the same content. The choice of which tag to use depends on the 2025 content and application in question and some amount of judgment might 2026 be necessary when selecting a tag. 2028 Interoperability is best served when the same language tag is used 2029 consistently to represent the same language. If an application has 2030 requirements that make the rules here inapplicable, then that 2031 application risks damaging interoperability. It is strongly 2032 RECOMMENDED that users not define their own rules for language tag 2033 choice. 2035 Standards, protocols, and applications that reference this document 2036 normatively but apply different rules to the ones given in this 2037 section MUST specify how language tag selection varies from the 2038 guidelines given here. 2040 To ensure consistent backward compatibility, this document contains 2041 several provisions to account for potential instability in the 2042 standards used to define the subtags that make up language tags. 2043 These provisions mean that no valid language tag can become invalid, 2044 nor will a language tag have a narrower scope in the future (it may 2045 have a broader scope). The most appropriate language tag for a given 2046 application or content item might evolve over time, but once tagged 2047 the content cannot become invalid. 2049 A subtag SHOULD only be used when it adds useful distinguishing 2050 information to the tag. Extraneous subtags interfere with the 2051 meaning, understanding, and processing of language tags. In 2052 particular, users and implementations SHOULD follow the 'Prefix' and 2053 'Suppress-Script' fields in the registry (defined in Section 3.1): 2054 these fields provide guidance on when specific additional subtags 2055 SHOULD be used or avoided in a language tag. 2057 Some applications can benefit from the use of script subtags in 2058 language tags, as long as the use is consistent for a given context. 2059 Script subtags are never appropriate for unwritten content (such as 2060 audio recordings). 2062 Script subtags were formally defined in BCP 47 by [RFC4646]. Their 2063 use can affect matching and subtag identification for implementations 2064 of previous versions of BCP 47 (i.e. [RFC1766] or [RFC3066]), as 2065 these subtags appear between the primary language and region subtags. 2066 For example, if an implementation selects content using Basic 2067 Filtering [RFC4647] (originally described in Section 2.5 of 2068 [RFC3066]) and the user requested the language range "en-US", content 2069 labeled "en-Latn-US" will not match the request and thus not be 2070 selected. Therefore, it is important to know when script subtags 2071 will customarily be used and when they ought not be used. In the 2072 registry, the Suppress-Script field helps ensure greater 2073 compatibility between the language tags by defining when users SHOULD 2074 NOT include a script subtag with a particular primary language 2075 subtag. 2077 The choice of subtags used to form a language tag SHOULD follow these 2078 guidelines: 2080 1. Use as precise a tag as possible, but no more specific than is 2081 justified. Avoid using subtags that are not important for 2082 distinguishing content in an application. 2084 * For example, 'de' might suffice for tagging an email written 2085 in German, while "de-CH-1996" is probably unnecessarily 2086 precise for such a task. 2088 * Note that some subtag sequences might not represent the 2089 language a casual user might expect, especially if when 2090 relying on the subtag's description in the registry. For 2091 example, the Swiss German (Schweizerdeutsch) language is 2092 represented by "gsw-CH" and not by "de-CH". This latter tag 2093 represents German ('de') as used in Switzerland ('CH'), also 2094 known as Swiss High German (Schweizer Hochdeutsch). Both are 2095 real languages and distinguishing between them could be 2096 important to an application. 2098 2. The script subtag SHOULD NOT be used to form language tags unless 2099 the script adds some distinguishing information to the tag. The 2100 field 'Suppress-Script' in the primary language record in the 2101 registry indicates script subtags that do not add distinguishing 2102 information for most applications. For example: 2104 * The subtag 'Latn' should not be used with the primary language 2105 'en' because nearly all English documents are written in the 2106 Latin script and it adds no distinguishing information. 2107 However, if a document were written in English mixing Latin 2108 script with another script such as Braille ('Brai'), then it 2109 might be appropriate to choose to indicate both scripts to aid 2110 in content selection, such as the application of a style 2111 sheet. 2113 * When labeling content that is unwritten (such as a recording 2114 of human speech), the script subtag should not be used, even 2115 if the language is customarily written in several scripts. 2116 Thus the subtitles to a movie might use the tag "uz-Arab" 2117 (Uzbek, Arabic script), but the audio track for the same 2118 language would be tagged simply "uz". (The tag "uz-Zxxx" 2119 could also be used where content is not written, as the subtag 2120 'Zxxx' represents the "Code for unwritten documents".) 2122 3. If a tag or subtag has a 'Preferred-Value' field in its registry 2123 entry, then the value of that field SHOULD be used to form the 2124 language tag in preference to the tag or subtag in which the 2125 preferred value appears. 2127 * For example, use 'he' for Hebrew in preference to 'iw'. 2129 4. [ISO639-2] has defined several codes included in the subtag 2130 registry that require additional care when choosing language 2131 tags. In most of these cases, where omitting the language tag is 2132 permitted, such omission is preferable to using these codes. 2133 Language tags SHOULD NOT incorporate these subtags as a prefix, 2134 unless the additional information conveys some value to the 2135 application. 2137 1. Use specific language subtags or subtag sequences in 2138 preference to subtags for language collections. A "language 2139 collection" is a subtag derived from one of the [ISO639-2] 2140 codes that represents multiple related languages. These 2141 codes are included as primary language subtags in the 2142 registry. For example, the code 'cmc' represents "Chamic 2143 languages". The registry contains values for each of the 2144 approximately ten individual languages represented by this 2145 collective code. Some other examples include the subtags 2146 Germanic languages ('gem') or Algonquian languages ('alg'). 2147 Since these codes are interpreted inclusively, content tagged 2148 with "en" (English), "de" (German), or "gsw" (Swiss German, 2149 Alemannic) could also (but SHOULD NOT) be tagged with "gem" 2150 (Germanic languages). Subtags derived from collection codes 2151 SHOULD NOT be used be used unless more specific language 2152 information is not available. Note that matching 2153 implementations generally do not understand the relationship 2154 between the collection and its encompassed languages, and so 2155 users ought not assume a subtag based on a language 2156 collection is a useful means for selecting content in its 2157 encompassed languages. 2159 2. The 'mul' (Multiple) primary language subtag identifies 2160 content in multiple languages. This subtag SHOULD NOT be 2161 used when a list of languages (such as Content-Language) or 2162 individual tags for each content element can be used instead. 2164 3. The 'und' (Undetermined) primary language subtag identifies 2165 linguistic content whose language is not determined. This 2166 subtag SHOULD NOT be used unless a language tag is required 2167 and language information is not available or cannot be 2168 determined. Omitting the language tag (where permitted) is 2169 preferred. The 'und' subtag MAY be useful for protocols that 2170 require a language tag to be provided or where a primary 2171 language subtag is required (such as in "und-Latn"). The 2172 'und' subtag MAY also be useful when matching language tags 2173 in certain situations. 2175 4. The 'zxx' (Non-Linguistic, Not Applicable) primary language 2176 subtag identifies content for which a language classification 2177 is inappropriate or does not apply. Some examples might 2178 include instrumental or electronic music; sound recordings 2179 consisting of nonverbal sounds; audiovisual materials with no 2180 narration, dialog, printed titles, or subtitles; machine- 2181 readable data files consisting of machine languages or 2182 character codes; or programming source code. 2184 5. The 'mis' (Uncoded) primary language subtag identifies 2185 content whose language is known but which does not currently 2186 have a corresponding subtag. This subtag SHOULD NOT be used. 2187 Because the addition of other codes in the future can render 2188 its application invalid, it is inherently unstable and hence 2189 incompatible with the stability goals of BCP 47. It is 2190 always preferable to use other subtags: either 'und' or (with 2191 prior agreement) private use subtags. 2193 6. The grandfathered tag "i-default" (Default Language) was 2194 originally registered according to [RFC1766] to meet the 2195 needs of [RFC2277]. It is used to indicate not a specific 2196 language, but rather, it identifies the condition or content 2197 used where the language preferences of the user cannot be 2198 established. It SHOULD NOT be used except as a means of 2199 labeling the default content for applications or protocols 2200 that require default language content to be labeled with that 2201 specific tag. It MAY also be used by an application or 2202 protocol to identify when the default language content is 2203 being returned. 2205 4.1.1. Tagging Encompassed Languages 2207 Some primary language records in the registry have a "Macrolanguage" 2208 field (Section 3.1.9) that contains a mapping from each "encompassed 2209 language" to its macrolanguage. The Macrolanguage mapping doesn't 2210 define what the relationship between the encompassed language and its 2211 macrolanguage is, nor does it define how languages encompassed by the 2212 same macrolanguage are related to each other. Two different 2213 languages encompassed by the same macrolanguage may differ from one 2214 another more than say, French and Spanish do. 2216 The more specific encompassed language subtag SHOULD be used to form 2217 the language tag, although either the macrolanguage or the 2218 encompassed language subtag MAY be used. This means, for example, 2219 tagging Cantonese ('yue') specifically rather than using the subtag 2220 for its macrolanguage Chinese ('zh'); Tajiki Arabic 'abh' instead of 2221 'ar' (Arabic); Plains Cree with 'crk' rather than 'cre' (Cree); and 2222 so forth. 2224 The family of languages encompassed by the macrolanguage Chinese 2225 ('zh') provides a useful illustration of this. Many different kinds 2226 of content have used tags beginning with the 'zh' subtag, with 2227 application specific meaning being associated with region codes in 2228 particular. This is because historically only the macrolanguage 2229 subtag was available for forming language tags. However, these 2230 languages are, in the main, not mutually intelligible when spoken. 2231 Written forms of these languages also show wide variation in form and 2232 usage and many of these languages are written in various contexts. 2234 For some applications, it might be advantageous to use the 2235 macrolanguage subtag to form the tag instead of using the more 2236 specific encompassed language subtag. This is specifically the case 2237 with the Chinese and Arabic language families. For example, an 2238 application with large quantities of textual data already using tags 2239 with the 'zh' (Chinese) subtag might continue to use this more 2240 general subtag even for new data, even though the content could be 2241 more precisely be tagged with 'cmn' (Mandarin). Similarly, an 2242 application already using tags that start with the 'ar' (Arabic) 2243 subtag might continue to use this more general subtag even for new 2244 data, which could be more precisely be tagged with 'arb' (Standard 2245 Arabic). 2247 In some cases, encompassed languages had tags registered for them 2248 during the RFC 3066 era. Those grandfathered tags not already 2249 deprecated were deprecated in the registry upon adoption of this 2250 document. As grandfathered values, they remain valid for use and 2251 some content or applications might use them. As with other 2252 grandfathered tags, since implementations might not be able to 2253 associate the grandfathered tags with the encompassed language subtag 2254 equivalents that are recommended by this document, implementations 2255 are encouraged to canonicalize tags for comparison purposes. Some 2256 examples of this include the tags "zh-yue" (Cantonese), "zh-hakka" 2257 (Hakka), and "zh-cmn-Hans" (Mandarin Chinese, Simplified Chinese 2258 script). 2260 Each Macrolanguage's subtag, by definition, includes all of its 2261 encompassed languages. Since the relationship between encompassed 2262 languages varies, and, with the exception of a few languages cited in 2263 the table following this paragraph, users cannot assume that the 2264 macrolanguage subtag means any particular encompassed language nor 2265 that any given pair of encompassed languages are mutually 2266 intelligible or otherwise interchangeable. The languages in the 2267 following table represent cases in which the macrolanguage subtag 2268 SHOULD be used in preference to the specified encompassed language 2269 subtag. (The situation regarding Chinese ('zh') and Arabic ('ar') is 2270 discussed above.) 2272 Konkani (macrolanguage) 'kok' Konkani (individual language) 'knn' 2273 Malay (macrolanguage) 'ms' Standard Malay 'zsm' 2274 Swahili (macrolanguage) 'sw' Swahili (individual language) 'swh' 2275 Uzbek 'uz' Northern Uzbek 'uzn' 2277 Figure 8: Macrolanguages closely identified with individual languages 2279 Applications MAY use macrolanguage information to improve matching or 2280 language negotiation. For example, the information that 'sr' 2281 (Serbian) and 'hr' (Croatian) share a macrolanguage expresses a 2282 closer relation between those languages than between, say, 'sr' 2283 (Serbian) and 'ma' (Macedonian). However, this relationship is not 2284 guaranteed nor is it exclusive. For example, Romanian ('ro') and 2285 Moldavian ('mo') do not share a macrolanguage, but are far more 2286 closely related to each other than Cantonese ('yue') and Wu ('wuu') , 2287 which do share a macrolanguage. 2289 4.2. Meaning of the Language Tag 2291 The meaning of a language tag is related to the meaning of the 2292 subtags that it contains. Each subtag, in turn, implies a certain 2293 range of expectations one might have for related content, although it 2294 is not a guarantee. For example, the use of a script subtag such as 2295 'Arab' (Arabic script) does not mean that the content contains only 2296 Arabic characters. It does mean that the language involved is 2297 predominantly in the Arabic script. Thus a language tag and its 2298 subtags can encompass a very wide range of variation and yet remain 2299 appropriate in each particular instance. 2301 Validity of a tag is not the only factor determining its usefulness. 2302 While every valid tag has a meaning, it might not represent any real- 2303 world language usage. This is unavoidable in a system in which 2304 subtags can be combined freely. For example, tags such as 2305 "ar-Cyrl-CO" (Arabic, Cyrillic script, as used in Colombia ) or "tlh- 2306 Kore-AQ-fonipa" (Klingon, Korean script, as used in Antarctica, IPA 2307 phonetic transcription) are both valid and unlikely to represent a 2308 useful combination of language attributes. 2310 The meaning of a given tag doesn't depend on the context in which it 2311 appears. The relationship between a tag's meaning and the 2312 information objects to which that tag is applied, however, can vary. 2314 o For a single information object, the associated language tags 2315 might be interpreted as the set of languages that is necessary for 2316 a complete comprehension of the complete object. Example: Plain 2317 text documents. 2319 o For an aggregation of information objects, the associated language 2320 tags could be taken as the set of languages used inside components 2321 of that aggregation. Examples: Document stores and libraries. 2323 o For information objects whose purpose is to provide alternatives, 2324 the associated language tags could be regarded as a hint that the 2325 content is provided in several languages and that one has to 2326 inspect each of the alternatives in order to find its language or 2327 languages. In this case, the presence of multiple tags might not 2328 mean that one needs to be multi-lingual to get complete 2329 understanding of the document. Example: MIME multipart/ 2330 alternative. 2332 o In markup languages, such as HTML and XML, language information 2333 can be added to each part of the document identified by the markup 2334 structure (including the whole document itself). For example, one 2335 could write C'est la vie. inside a 2336 Norwegian document; the Norwegian-speaking user could then access 2337 a French-Norwegian dictionary to find out what the marked section 2338 meant. If the user were listening to that document through a 2339 speech synthesis interface, this formation could be used to signal 2340 the synthesizer to appropriately apply French text-to-speech 2341 pronunciation rules to that span of text, instead of applying the 2342 inappropriate Norwegian rules. 2344 o Language tags form the basis for most implementations of locale 2345 identifiers. For example, see Unicode's CLDR (Common Locale Data 2346 Repository) project. 2348 Language tags are related when they contain a similar sequence of 2349 subtags. For example, if a language tag B contains language tag A as 2350 a prefix, then B is typically "narrower" or "more specific" than A. 2351 Thus, "zh-Hant-TW" is more specific than "zh-Hant". 2353 This relationship is not guaranteed in all cases: specifically, 2354 languages that begin with the same sequence of subtags are NOT 2355 guaranteed to be mutually intelligible, although they might be. For 2356 example, the tag "az" shares a prefix with both "az-Latn" 2357 (Azerbaijani written using the Latin script) and "az-Cyrl" 2358 (Azerbaijani written using the Cyrillic script). A person fluent in 2359 one script might not be able to read the other, even though the text 2360 might be identical. Content tagged as "az" most probably is written 2361 in just one script and thus might not be intelligible to a reader 2362 familiar with the other script. 2364 Similarly, not all subtags specify an actual distinction in language. 2365 For example, the tags "en-US" and "en-CA" mean, roughly, English with 2366 features generally thought to be characteristic of the United States 2367 and Canada, respectively. They do not imply that a significant 2368 dialectical boundary exists between any arbitrarily selected point in 2369 the United States and any arbitrarily selected point in Canada. 2370 Neither does a particular region subtag imply that linguistic 2371 distinctions do not exist within that region. 2373 4.3. Lists of Languages 2375 In some applications, a single content item might best be associated 2376 with more than one language tag. Examples of such a usage include: 2378 o A language priority list [RFC4647] describing a user's language 2379 preferences. This is a (possibly weighted) list of potentially- 2380 unrelated varieties, expressing a preference, rather than as a 2381 declaration about actual content. 2383 o Content items that contain multiple, distinct varieties. Often 2384 this is used to indicate an appropriate audience for a given 2385 content item when multiple choices might be appropriate. Examples 2386 of this could include: 2388 * Metadata about the appropriate audience for a movie title. For 2389 example, a DVD might label its individual audio tracks 'de' 2390 (German), 'fr' (French), and 'es' (Spanish), but the overall 2391 title would list "de, fr, es" as its overall audience. 2393 * A French/English, English/French dictionary tagged as both "en" 2394 and "fr" to specify that it applies equally to French and 2395 English 2397 * A side-by-side or interlinear translation of a document, as is 2398 commonly done with classical works in Latin or Greek 2400 o Content items that contain a single language but which require 2401 multiple levels of specificity. For example, a library might wish 2402 to classify a particular work as both Chinese ('zh') and as Min 2403 Nan ('nan') for audiences capable of appreciating the distinction 2404 or needing to select content more narrowly. 2406 4.4. Length Considerations 2408 There is no defined upper limit on the size of language tags. While 2409 historically most language tags have consisted of language and region 2410 subtags with a combined total length of up to six characters, larger 2411 tags have always been both possible and actually appeared in use. 2413 Neither the language tag syntax nor other requirements in this 2414 document impose a fixed upper limit on the number of subtags in a 2415 language tag (and thus an upper bound on the size of a tag). The 2416 language tag syntax suggests that, depending on the specific 2417 language, more subtags (and thus a longer tag) are sometimes 2418 necessary to completely identify the language for certain 2419 applications; thus, it is possible to envision long or complex subtag 2420 sequences. 2422 4.4.1. Working with Limited Buffer Sizes 2424 Some applications and protocols are forced to allocate fixed buffer 2425 sizes or otherwise limit the length of a language tag. A conformant 2426 implementation or specification MAY refuse to support the storage of 2427 language tags that exceed a specified length. Any such limitation 2428 SHOULD be clearly documented, and such documentation SHOULD include 2429 what happens to longer tags (for example, whether an error value is 2430 generated or the language tag is truncated). A protocol that allows 2431 tags to be truncated at an arbitrary limit, without giving any 2432 indication of what that limit is, has the potential for causing harm 2433 by changing the meaning of tags in substantial ways. 2435 In practice, most language tags do not require more than a few 2436 subtags and will not approach reasonably sized buffer limitations; 2437 see Section 4.1. 2439 Some specifications or protocols have limits on tag length but do not 2440 have a fixed length limitation. For example, [RFC2231] has no 2441 explicit length limitation: the length available for the language tag 2442 is constrained by the length of other header components (such as the 2443 charset's name) coupled with the 76-character limit in [RFC2047]. 2444 Thus, the "limit" might be 50 or more characters, but it could 2445 potentially be quite small. 2447 The considerations for assigning a buffer limit are: 2449 Implementations SHOULD NOT truncate language tags unless the 2450 meaning of the tag is purposefully being changed, or unless the 2451 tag does not fit into a limited buffer size specified by a 2452 protocol for storage or transmission. 2454 Implementations SHOULD warn the user when a tag is truncated since 2455 truncation changes the semantic meaning of the tag. 2457 Implementations of protocols or specifications that are space 2458 constrained but do not have a fixed limit SHOULD use the longest 2459 possible tag in preference to truncation. 2461 Protocols or specifications that specify limited buffer sizes for 2462 language tags MUST allow for language tags of up to 33 characters. 2464 Protocols or specifications that specify limited buffer sizes for 2465 language tags SHOULD allow for language tags of at least 30 2466 characters. Note that RFC 4646 [RFC4646] recommended a field size 2467 of 42 character because it included the permanently reserved (and 2468 unused) 'extlang' production. The current size recommendation 2469 does not include the use of the 'extlang' field. Protocols or 2470 specifications that commonly use extensions or private use subtags 2471 might wish to reserve or recommend a longer "minimum buffer" size. 2473 The following illustration shows how the 30-character recommendation 2474 was derived: 2476 language = 3 (ISO 639-2; ISO 639-1 requires 2) 2477 script = 5 (if not suppressed: see Section 4.1) 2478 region = 4 (UN M.49; ISO 3166-1 requires 3) 2479 variant1 = 9 (needs 'language' as a prefix) 2480 variant2 = 9 (needs 'language-variant1' as a prefix) 2482 total = 30 characters 2484 Figure 9: Derivation of the Limit on Tag Length 2486 4.4.2. Truncation of Language Tags 2488 Truncation of a language tag alters the meaning of the tag, and thus 2489 SHOULD be avoided. However, truncation of language tags is sometimes 2490 necessary due to limited buffer sizes. Such truncation MUST NOT 2491 permit a subtag to be chopped off in the middle or the formation of 2492 invalid tags (for example, one ending with the "-" character). 2494 This means that applications or protocols that truncate tags MUST do 2495 so by progressively removing subtags along with their preceding "-" 2496 from the right side of the language tag until the tag is short enough 2497 for the given buffer. If the resulting tag ends with a single- 2498 character subtag, that subtag and its preceding "-" MUST also be 2499 removed. For example: 2501 Tag to truncate: zh-Latn-CN-variant1-a-extend1-x-wadegile-private1 2502 1. zh-Latn-CN-variant1-a-extend1-x-wadegile 2503 2. zh-Latn-CN-variant1-a-extend1 2504 3. zh-Latn-CN-variant1 2505 4. zh-Latn-CN 2506 5. zh-Latn 2507 6. zh 2509 Figure 10: Example of Tag Truncation 2511 4.5. Canonicalization of Language Tags 2513 Since a particular language tag is sometimes used by many processes, 2514 language tags SHOULD always be created or generated in a canonical 2515 form. 2517 A language tag is in canonical form when: 2519 1. The tag is well-formed according the rules in Section 2.1 and 2520 Section 2.2. 2522 2. Subtags of type 'Region' that have a Preferred-Value mapping in 2523 the IANA registry (see Section 3.1) MUST be replaced with their 2524 mapped value. 2526 3. Redundant or grandfathered tags that have a Preferred-Value 2527 mapping in the IANA registry (see Section 3.1) MUST be replaced 2528 with their mapped value. These items either are deprecated 2529 mappings created before the adoption of this document (such as 2530 the mapping of "no-nyn" to "nn" or "i-klingon" to "tlh") or are 2531 the result of later registrations or additions to this document 2532 (for example, "zh-hakka" was deprecated in favor of the ISO 639-3 2533 code 'hak' when this document was adopted). 2535 4. Other subtags that have a Preferred-Value mapping in the IANA 2536 registry (see Section 3.1) MUST be replaced with their mapped 2537 value. These items consist entirely of clerical corrections to 2538 ISO 639-1 in which the deprecated subtags have been maintained 2539 for compatibility purposes. 2541 5. If more than one extension subtag sequence exists, the extension 2542 sequences are ordered into case-insensitive ASCII order by 2543 singleton subtag. 2545 Example: The language tag "en-a-aaa-b-ccc-bbb-x-xyz" is in canonical 2546 form, while "en-b-ccc-bbb-a-aaa-X-xyz" is well-formed and potentially 2547 valid (extensions 'a' and 'b' are not defined as of the publication 2548 of this document) but not in canonical form (the extensions are not 2549 in alphabetical order). 2551 Example: The language tag "en-BU" (English as used in Burma) is not 2552 canonical because the 'BU' subtag has a canonical mapping to 'MM' 2553 (Myanmar), although the tag "en-BU" maintains its validity. 2555 Canonicalization of language tags does not imply anything about the 2556 use of upper or lowercase letters when processing or comparing 2557 subtags (and as described in Section 2.1). All comparisons MUST be 2558 performed in a case-insensitive manner. 2560 When performing canonicalization of language tags, processors MAY 2561 regularize the case of the subtags (that is, this process is 2562 OPTIONAL), following the case used in the registry. Note that this 2563 corresponds to the following casing rules: uppercase all non-initial 2564 two-letter subtags; titlecase all non-initial four-letter subtags; 2565 lowercase everything else. 2567 Note: Case folding of ASCII letters in certain locales, unless 2568 carefully handled, sometimes produces non-ASCII character values. 2569 The Unicode Character Database file "SpecialCasing.txt" defines the 2570 specific cases that are known to cause problems with this. In 2571 particular, the letter 'i' (U+0069) in Turkish and Azerbaijani is 2572 uppercased to U+0130 (LATIN CAPITAL LETTER I WITH DOT ABOVE). 2573 Implementers SHOULD specify a locale-neutral casing operation to 2574 ensure that case folding of subtags does not produce this value, 2575 which is illegal in language tags. For example, if one were to 2576 uppercase the region subtag 'in' using Turkish locale rules, the 2577 sequence U+0130 U+004E would result instead of the expected 'IN'. 2579 Note: if the field 'Deprecated' appears in a registry record without 2580 an accompanying 'Preferred-Value' field, then that tag or subtag is 2581 deprecated without a replacement. Validating processors SHOULD NOT 2582 generate tags that include these values, although the values are 2583 canonical when they appear in a language tag. 2585 An extension MUST define any relationships that exist between the 2586 various subtags in the extension and thus MAY define an alternate 2587 canonicalization scheme for the extension's subtags. Extensions MAY 2588 define how the order of the extension's subtags are interpreted. For 2589 example, an extension could define that its subtags are in canonical 2590 order when the subtags are placed into ASCII order: that is, "en-a- 2591 aaa-bbb-ccc" instead of "en-a-ccc-bbb-aaa". Another extension might 2592 define that the order of the subtags influences their semantic 2593 meaning (so that "en-b-ccc-bbb-aaa" has a different value from "en-b- 2594 aaa-bbb-ccc"). However, extension specifications SHOULD be designed 2595 so that they are tolerant of the typical processes described in 2596 Section 3.7. 2598 4.6. Considerations for Private Use Subtags 2600 Private use subtags, like all other subtags, MUST conform to the 2601 format and content constraints in the ABNF. Private use subtags have 2602 no meaning outside the private agreement between the parties that 2603 intend to use or exchange language tags that employ them. The same 2604 subtags MAY be used with a different meaning under a separate private 2605 agreement. They SHOULD NOT be used where alternatives exist and 2606 SHOULD NOT be used in content or protocols intended for general use. 2608 Private use subtags are simply useless for information exchange 2609 without prior arrangement. The value and semantic meaning of private 2610 use tags and of the subtags used within such a language tag are not 2611 defined by this document. 2613 Subtags defined in the IANA registry as having a specific private use 2614 meaning convey more information that a purely private use tag 2615 prefixed by the singleton subtag 'x'. For applications, this 2616 additional information MAY be useful. 2618 For example, the region subtags 'AA', 'ZZ', and in the ranges 2619 'QM'-'QZ' and 'XA'-'XZ' (derived from ISO 3166-1 private use codes) 2620 MAY be used to form a language tag. A tag such as "zh-Hans-XQ" 2621 conveys a great deal of public, interchangeable information about the 2622 language material (that it is Chinese in the simplified Chinese 2623 script and is suitable for some geographic region 'XQ'). While the 2624 precise geographic region is not known outside of private agreement, 2625 the tag conveys far more information than an opaque tag such as 2626 "x-someLang", which contains no information about the language subtag 2627 or script subtag outside of the private agreement. 2629 However, in some cases content tagged with private use subtags MAY 2630 interact with other systems in a different and possibly unsuitable 2631 manner compared to tags that use opaque, privately defined subtags, 2632 so the choice of the best approach sometimes depends on the 2633 particular domain in question. 2635 5. IANA Considerations 2637 This section deals with the processes and requirements necessary for 2638 IANA to undertake to maintain the subtag and extension registries as 2639 defined by this document and in accordance with the requirements of 2640 [RFC2434]. 2642 The impact on the IANA maintainers of the two registries defined by 2643 this document will be a small increase in the frequency of new 2644 entries or updates. IANA also is required to create a new mailing 2645 list (described below in Section 5.1) to announce registry changes 2646 and updates. 2648 5.1. Language Subtag Registry 2650 Upon adoption of this document, IANA will update the registry using 2651 instructions and content provided in a companion document: 2652 [registry-update]. The criteria and process for selecting the 2653 updated set of records are described in that document. The updated 2654 set of records represents no impact on IANA, since the work to create 2655 it will be performed externally. 2657 Future work on the Language Subtag Registry includes the following 2658 activities: 2660 o Inserting or replacing whole records. These records are 2661 preformatted for IANA by the Language Subtag Reviewer, as 2662 described in Section 3.3. 2664 o Archiving and making publicly available the registration forms. 2666 o Announcing each updated version of the registry on the 2667 "ietf-languages-announcements@iana.org" mailing list. 2669 Each registration form sent to IANA contains a single record for 2670 incorporation into the registry. The form will be sent to 2671 "iana@iana.org" by the Language Subtag Reviewer. It will have a 2672 subject line indicating whether the enclosed form represents an 2673 insertion of a new record (indicated by the word "INSERT" in the 2674 subject line) or a replacement of an existing record (indicated by 2675 the word "MODIFY" in the subject line). At no time can a record be 2676 deleted from the registry. 2678 IANA will extract the record from the form and place the inserted or 2679 modified record into the appropriate section of the language subtag 2680 registry, grouping the records by their 'Type' field. Inserted 2681 records can be placed anywhere in the appropriate section; there is 2682 no guarantee of the order of the records beyond grouping them 2683 together by 'Type'. Modified records overwrite the record they 2684 replace. 2686 Whenever an entry is created or modified in the registry, the 'File- 2687 Date' record at the start of the registry is updated to reflect the 2688 most recent modification date in the [RFC3339] "full-date" format: 2689 included in any request to insert or modify records will be a new 2690 File-Date record indicating the acceptance date of the record. This 2691 record is to be placed first in the registry, replacing the existing 2692 File-Date record. In the event that the File-Date record present in 2693 the registry has a later date than the record being inserted or 2694 modified, then the latest (most recent) record will be preserved. 2695 IANA should attempt to process multiple registration requests in 2696 order according to the File-Date in the form, since one registration 2697 could otherwise cause a more recent change to be overwritten. 2699 The updated registry file MUST use the UTF-8 character encoding and 2700 IANA MUST check the registry file for proper encoding. Non-ASCII 2701 characters can be sent to IANA by attaching the registration form to 2702 the email message or by using various encodings in the mail message 2703 body (UTF-8 is recommended). IANA will verify any unclear or 2704 corrupted characters with the Language Subtag Reviewer prior to 2705 posting the updated registry. 2707 IANA will also archive and make publicly available from 2708 "http://www.iana.org/assignments/lang-subtags-templates/" each 2709 registration form. Note that multiple registrations can pertain to 2710 the same record in the registry. 2712 Developers who are dependent upon the language subtag registry 2713 sometimes would like to be informed of changes in the registry so 2714 that they can update their implementations. When any change is made 2715 to the language subtag registry, IANA will send an announcement 2716 message to "ietf-languages-announcements@iana.org" (a self- 2717 subscribing list that only IANA can post to). 2719 5.2. Extensions Registry 2721 The Language Tag Extensions Registry can contain at most 35 records 2722 and thus changes to this registry are expected to be very infrequent. 2724 Future work by IANA on the Language Tag Extensions Registry is 2725 limited to two cases. First, the IESG MAY request that new records 2726 be inserted into this registry from time to time. These requests 2727 MUST include the record to insert in the exact format described in 2728 Section 3.7. In addition, there MAY be occasional requests from the 2729 maintaining authority for a specific extension to update the contact 2730 information or URLs in the record. These requests MUST include the 2731 complete, updated record. IANA is not responsible for validating the 2732 information provided, only that it is properly formatted. It should 2733 reasonably be seen to come from the maintaining authority named in 2734 the record present in the registry. 2736 6. Security Considerations 2738 Language tags used in content negotiation, like any other information 2739 exchanged on the Internet, might be a source of concern because they 2740 might be used to infer the nationality of the sender, and thus 2741 identify potential targets for surveillance. 2743 This is a special case of the general problem that anything sent is 2744 visible to the receiving party and possibly to third parties as well. 2745 It is useful to be aware that such concerns can exist in some cases. 2747 The evaluation of the exact magnitude of the threat, and any possible 2748 countermeasures, is left to each application protocol (see BCP 72 2749 [RFC3552] for best current practice guidance on security threats and 2750 defenses). 2752 The language tag associated with a particular information item is of 2753 no consequence whatsoever in determining whether that content might 2754 contain possible homographs. The fact that a text is tagged as being 2755 in one language or using a particular script subtag provides no 2756 assurance whatsoever that it does not contain characters from scripts 2757 other than the one(s) associated with or specified by that language 2758 tag. 2760 Since there is no limit to the number of variant, private use, and 2761 extension subtags, and consequently no limit on the possible length 2762 of a tag, implementations need to guard against buffer overflow 2763 attacks. See Section 4.4 for details on language tag truncation, 2764 which can occur as a consequence of defenses against buffer overflow. 2766 Although the specification of valid subtags for an extension (see 2767 Section 3.7) MUST be available over the Internet, implementations 2768 SHOULD NOT mechanically depend on it being always accessible, to 2769 prevent denial-of-service attacks. 2771 7. Character Set Considerations 2773 The syntax in this document requires that language tags use only the 2774 characters A-Z, a-z, 0-9, and HYPHEN-MINUS, which are present in most 2775 character sets, so the composition of language tags should not have 2776 any character set issues. 2778 Rendering of characters based on the content of a language tag is not 2779 addressed in this memo. Historically, some languages have relied on 2780 the use of specific character sets or other information in order to 2781 infer how a specific character should be rendered (notably this 2782 applies to language- and culture-specific variations of Han 2783 ideographs as used in Japanese, Chinese, and Korean). When language 2784 tags are applied to spans of text, rendering engines sometimes use 2785 that information in deciding which font to use in the absence of 2786 other information, particularly where languages with distinct writing 2787 traditions use the same characters. 2789 8. Changes from RFC 4646 2791 The main goal for this revision of this document was to incorporate 2792 ISO 639-3 and its attendant set of language codes into the IANA 2793 Language Subtag Registry, permitting the identification of many more 2794 languages and dialects than previously supported. 2796 The specific changes in this document to meet these goals are: 2798 o Defines the incorporation of ISO 639-3 codes as language. It also 2799 permanently reserves and disallows the use of extlang subtags. 2800 The changes necessary to achieve this were: 2802 * Modified the ABNF comments. 2804 * Updated various registration and stability requirements 2805 sections to reference ISO 639-3 in addition to ISO 639-1 and 2806 ISO 639-2. 2808 * Edited the text to eliminate references to extended language 2809 subtags where they are no longer used. 2811 * Explained the change in the section on extended language 2812 subtags. 2814 o Changed the ABNF related to grandfathered tags. The irregular 2815 tags are now listed. Well-formed grandfathered tags are now 2816 described by the 'langtag' production and the 'grandfathered' 2817 production was removed as a result. Also: added description of 2818 both types of grandfathered tags to Section 2.2.8. 2820 o Added the paragraph on "collections" to Section 4.1. 2822 o Changed the capitalization rules for 'Tag' fields in Section 3.1. 2824 o Split section 3.1 up into subsections. 2826 o Modified section 3.5 to allow Suppress-Script fields to be added, 2827 modified, or removed via the registration process. This was an 2828 erratum from RFC 4646. 2830 o Modified examples that used region code 'CS' (formerly Serbia and 2831 Montenegro) to use 'RS' (Serbia) instead. 2833 o Modified the rules for creating and maintaining record 2834 'Description' fields to prevent duplicates, including inverted 2835 duplicates. 2837 o Removed the lengthy description of why RFC 4646 was created from 2838 this section, which also caused the removal of the reference to 2839 XML Schema. 2841 o Modified the text in section 2.1 to place more emphasis on the 2842 fact that language tags are not case sensitive. 2844 o Replaced the example "fr-Latn-CA" in Section 2.1 with "sr-Latn-RS" 2845 and "az-Arab-IR" because "fr-Latn-CA" doesn't respect the 2846 Suppress-Script on 'Latn' with 'fr'. 2848 o Changed the requirements for well-formedness to make singleton 2849 repetition checking optional (it is required for validity 2850 checking) in Section 2.2.9. 2852 o Changed the text in Section 2.2.9 referring to grandfathered 2853 checking to note that the list is now included in the ABNF. 2855 o Modified and added text to Section 3.2. The job description was 2856 placed first. A note was added making clear that the Language 2857 Subtag Reviewer may delegate various non-critical duties, 2858 including list moderation. Finally, additional text was added to 2859 make the appointment process clear and to clarify that decisions 2860 and performance of the reviewer are appealable. 2862 o Added text to Section 3.5 clarifying that the ietf-languages list 2863 is operated by whomever the IESG appoints. 2865 o Added text to Section 3.1.4 clarifying that the first Description 2866 in a 'language' record matches the corresponding Reference Name 2867 for the language in ISO 639-3. 2869 o Modified Section 2.2.9 to define classes of conformance related to 2870 specific tags (formerly 'well-formed' and 'valid' referred to 2871 implementations). Notes were added about the removal of 'extlang' 2872 from the ABNF provided in RFC 4646, allowing for well-formedness 2873 using this older definition. Reference to RFC 3066 well- 2874 formedness was also added. 2876 o Added text to the end of Section 3.1.2 noting that future versions 2877 of this document might add new field types to the Registry format 2878 and recommending that implementations ignore any unrecognized 2879 fields. 2881 o Added text about what the lack of a Suppress-Script field means in 2882 a record to Section 3.1.8. 2884 o Added text allowing the correction of misspellings and typographic 2885 errors to Section 3.1.4. 2887 o Added text to Section 3.1.7 disallowing Prefix field conflicts 2888 (such as circular prefix references). 2890 o Modified text in Section 3.5 to require the subtag reviewer to 2891 announce his/her decision (or extension) following the two-week 2892 period. Also clarified that any decision or failure to decide can 2893 be appealed. 2895 o Modified text in Section 4.1 to include the (heretofore anecdotal) 2896 guiding principle of tag choice, and clarifying the non-use of 2897 script subtags in non-written applications. Also updated examples 2898 in this section to use Chamic languages as an example of language 2899 collections. 2901 o Prohibited multiple use of the same variant in a tag (i.e. "de- 2902 1901-1901"). Previously this was only a recommendation 2903 ("SHOULD"). 2905 o Removed inappropriate [RFC2119] language from the illustration in 2906 Section 4.4.1. 2908 o Replaced the example of deprecating "zh-gouyu" with "zh- 2909 hakka"->"hak" in Section 4.5, noting that it was this document 2910 that caused the change. 2912 o Replaced the section in Section 4.1 dealing with "mul"/"und" to 2913 include the subtags 'zxx' and 'mis', as well as the tag 2914 "i-default". A normative reference to RFC 2277 was added, along 2915 with an informative reference to MARC21. 2917 o Added text to Section 3.5 clarifying that any modifications of a 2918 registration request must be sent to the ietf-languages list 2919 before submission to IANA. 2921 o Changed the ABNF for the record-jar format from using the LWSP 2922 production to use a folding whitespace production similar to obs- 2923 FWS in [RFC5234]. This effectively prevents unintentional blank 2924 lines inside a field. 2926 o Clarified and revised text in Section 3.3, Section 3.5, and 2927 Section 5.1 to clarify that the Language Subtag Reviewer sends the 2928 complete registration forms to IANA, that IANA extracts the record 2929 from the form, and that the forms must also be archived separately 2930 from the registry. 2932 o Added text to Section 5 requiring IANA to send an announcement to 2933 an ietf-languages-announce list whenever the registry is updated. 2935 o Modification of the registry to use UTF-8 as its character 2936 encoding. This also entails additional instructions to IANA and 2937 the Language Subtag Reviewer in the registration process. 2939 o Modified the rules in Section 2.2.4 so that "exceptionally 2940 reserved" ISO 3166-1 codes other than 'UK' were included into the 2941 registry. In particular, this allows the code 'EU' (European 2942 Union) to be used to form language tags or (more commonly) for 2943 applications that use the registry for region codes to reference 2944 this subtag. 2946 o Modified the IANA considerations section (Section 5) to remove 2947 unnecessary normative [RFC2119] language. 2949 9. References 2951 9.1. Normative References 2953 [ISO15924] 2954 International Organization for Standardization, "ISO 2955 15924:2004. Information and documentation -- Codes for the 2956 representation of names of scripts", January 2004. 2958 [ISO3166-1] 2959 International Organization for Standardization, "ISO 3166- 2960 1:2006. Codes for the representation of names of countries 2961 and their subdivisions -- Part 1: Country codes", 2962 November 2006. 2964 [ISO639-1] 2965 International Organization for Standardization, "ISO 639- 2966 1:2002. Codes for the representation of names of languages 2967 -- Part 1: Alpha-2 code", 2002. 2969 [ISO639-2] 2970 International Organization for Standardization, "ISO 639- 2971 2:1998. Codes for the representation of names of languages 2972 -- Part 2: Alpha-3 code, first edition", 1998. 2974 [ISO639-3] 2975 International Organization for Standardization, "ISO 639- 2976 3:2007. Codes for the representation of names of languages 2977 -- Part 3: Alpha-3 code for comprehensive coverage of 2978 languages", 2007. 2980 [ISO646] International Organization for Standardization, "ISO/IEC 2981 646:1991, Information technology -- ISO 7-bit coded 2982 character set for information interchange.", 1991. 2984 [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 2985 3", BCP 9, RFC 2026, October 1996. 2987 [RFC2028] Hovey, R. and S. Bradner, "The Organizations Involved in 2988 the IETF Standards Process", BCP 11, RFC 2028, 2989 October 1996. 2991 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2992 Requirement Levels", BCP 14, RFC 2119, March 1997. 2994 [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and 2995 Languages", BCP 18, RFC 2277, January 1998. 2997 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an 2998 IANA Considerations Section in RFCs", BCP 26, RFC 2434, 2999 October 1998. 3001 [RFC2860] Carpenter, B., Baker, F., and M. Roberts, "Memorandum of 3002 Understanding Concerning the Technical Work of the 3003 Internet Assigned Numbers Authority", RFC 2860, June 2000. 3005 [RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the 3006 Internet: Timestamps", RFC 3339, July 2002. 3008 [RFC4645] Ewell, D., "Initial Language Subtag Registry", RFC 4645, 3009 September 2006. 3011 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 3012 BCP 47, RFC 4647, September 2006. 3014 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 3015 Specifications: ABNF", STD 68, RFC 5234, January 2008. 3017 [UAX14] Freitag, A., "Unicode Standard Annex #14: Line Breaking 3018 Properties", August 2006, 3019 . 3021 [UN_M.49] Statistics Division, United Nations, "Standard Country or 3022 Area Codes for Statistical Use", UN Standard Country or 3023 Area Codes for Statistical Use, Revision 4 (United Nations 3024 publication, Sales No. 98.XVII.9, June 1999. 3026 9.2. Informative References 3028 [RFC1766] Alvestrand, H., "Tags for the Identification of 3029 Languages", RFC 1766, March 1995. 3031 [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) 3032 Part Three: Message Header Extensions for Non-ASCII Text", 3033 RFC 2047, November 1996. 3035 [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded 3036 Word Extensions: 3037 Character Sets, Languages, and Continuations", RFC 2231, 3038 November 1997. 3040 [RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO 3041 10646", RFC 2781, February 2000. 3043 [RFC3066] Alvestrand, H., "Tags for the Identification of 3044 Languages", RFC 3066, January 2001. 3046 [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC 3047 Text on Security Considerations", BCP 72, RFC 3552, 3048 July 2003. 3050 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 3051 10646", STD 63, RFC 3629, November 2003. 3053 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 3054 Languages", BCP 47, RFC 4646, September 2006. 3056 [UTS35] Davis, M., "Unicode Technical Standard #35: Locale Data 3057 Markup Language (LDML)", December 2007, 3058 . 3060 [Unicode] Unicode Consortium, "The Unicode Consortium. The Unicode 3061 Standard, Version 5.0, (Boston, MA, Addison-Wesley, 2003. 3062 ISBN 0-321-49081-0)", January 2007. 3064 [iso639.prin] 3065 ISO 639 Joint Advisory Committee, "ISO 639 Joint Advisory 3066 Committee: Working principles for ISO 639 maintenance", 3067 March 2000, 3068 . 3071 [record-jar] 3072 Raymond, E., "The Art of Unix Programming", 2003, 3073 . 3075 [registry-update] 3076 Ewell, D., Ed., "Update to the Language Subtag Registry", 3077 September 2006, . 3080 Appendix A. Acknowledgements 3082 Any list of contributors is bound to be incomplete; please regard the 3083 following as only a selection from the group of people who have 3084 contributed to make this document what it is today. 3086 The contributors to RFC 4646, RFC 4647, RFC 3066, and RFC 1766, the 3087 precursors of this document, made enormous contributions directly or 3088 indirectly to this document and are generally responsible for the 3089 success of language tags. 3091 The following people contributed to this document: 3093 Stephane Bortzmeyer, Karen Broome, Peter Constable, John Cowan, 3094 Martin Duerst, Frank Ellerman, Doug Ewell, Deborah Garside, Marion 3095 Gunn, Kent Karlsson, Chris Newman, Randy Presuhn, Stephen Silver, and 3096 many, many others. 3098 Very special thanks must go to Harald Tveit Alvestrand, who 3099 originated RFCs 1766 and 3066, and without whom this document would 3100 not have been possible. 3102 Special thanks go to Michael Everson, who served as the Language Tag 3103 Reviewer for almost the entire RFC 1766/RFC 3066 period, as well as 3104 the Language Subtag Reviewer since the adoption of RFC 4646. 3106 Special thanks also to Doug Ewell, for his production of the first 3107 complete subtag registry, his work to support and maintain new 3108 registrations, and his careful editorship of both RFC 4645 and 3109 [registry-update]. 3111 Appendix B. Examples of Language Tags (Informative) 3113 Simple language subtag: 3115 de (German) 3117 fr (French) 3119 ja (Japanese) 3121 i-enochian (example of a grandfathered tag) 3123 Language subtag plus Script subtag: 3125 zh-Hant (Chinese written using the Traditional Chinese script) 3127 zh-Hans (Chinese written using the Simplified Chinese script) 3129 sr-Cyrl (Serbian written using the Cyrillic script) 3131 sr-Latn (Serbian written using the Latin script) 3133 Language-Script-Region: 3135 zh-Hans-CN (Chinese written using the Simplified script as used in 3136 mainland China) 3138 sr-Latn-RS (Serbian written using the Latin script as used in 3139 Serbia) 3141 Language-Variant: 3143 sl-rozaj (Resian dialect of Slovenian) 3145 sl-nedis (Nadiza dialect of Slovenian) 3147 Language-Region-Variant: 3149 de-CH-1901 (German as used in Switzerland using the 1901 variant 3150 [orthography]) 3152 sl-IT-nedis (Slovenian as used in Italy, Nadiza dialect) 3154 Language-Script-Region-Variant: 3156 hy-Latn-IT-arevela (Eastern Armenian written in Latin script, as 3157 used in Italy) 3159 Language-Region: 3161 de-DE (German for Germany) 3163 en-US (English as used in the United States) 3165 es-419 (Spanish appropriate for the Latin America and Caribbean 3166 region using the UN region code) 3168 Private use subtags: 3170 de-CH-x-phonebk 3172 az-Arab-x-AZE-derbend 3174 Private use registry values: 3176 x-whatever (private use using the singleton 'x') 3178 qaa-Qaaa-QM-x-southern (all private tags) 3180 de-Qaaa (German, with a private script) 3182 sr-Latn-QM (Serbian, Latin-script, private region) 3184 sr-Qaaa-RS (Serbian, private script, for Serbia) 3186 Tags that use extensions (examples ONLY: extensions MUST be defined 3187 by revision or update to this document or by RFC): 3189 en-US-u-islamCal 3191 zh-CN-a-myExt-x-private 3193 en-a-myExt-b-another 3195 Some Invalid Tags: 3197 de-419-DE (two region tags) 3199 a-DE (use of a single-character subtag in primary position; note 3200 that there are a few grandfathered tags that start with "i-" that 3201 are valid) 3202 ar-a-aaa-b-bbb-a-ccc (two extensions with same single-letter 3203 prefix) 3205 Appendix C. Examples of Registration Forms 3206 LANGUAGE SUBTAG REGISTRATION FORM 3207 1. Name of requester: Han Steenwijk 3208 2. E-mail address of requester: han.steenwijk @ unipd.it 3209 3. Record Requested: 3211 Type: variant 3212 Subtag: biske 3213 Description: The San Giorgio dialect of Resian 3214 Description: The Bila dialect of Resian 3215 Prefix: sl-rozaj 3216 Comments: The dialect of San Giorgio/Bila is one of the 3217 four major local dialects of Resian 3219 4. Intended meaning of the subtag: The local variety of Resian as 3220 spoken in San Giorgio/Bila 3222 5. Reference to published description of the language (book or 3223 article): 3224 -- Jan I.N. Baudouin de Courtenay - Opyt fonetiki rez'janskich 3225 govorov, Varsava - Peterburg: Vende - Kozancikov, 1875. 3227 LANGUAGE SUBTAG REGISTRATION FORM 3228 1. Name of requester: Jaska Zedlik 3229 2. E-mail address of requester: jz53 @ zedlik.com 3230 3. Record Requested: 3232 Type: variant 3233 Subtag: tarask 3234 Description: Belarusian in Taraskievica orthography 3235 Prefix: be 3236 Comments: The subtag represents Branislau Taraskievic's Belarusian 3237 orthography as published in "Bielaruski klasycny pravapis" by Juras 3238 Buslakou, Vincuk Viacorka, Zmicier Sanko, and Zmicier Sauka 3239 (Vilnia-Miensk 2005). 3241 4. Intended meaning of the subtag: 3243 The subtag is intended to represent the Belarusian orthography as 3244 published in "Bielaruski klasycny pravapis" by Juras Buslakou, Vincuk 3245 Viacorka, Zmicier Sanko, and Zmicier Sauka (Vilnia-Miensk 2005). 3247 5. Reference to published description of the language (book or article): 3249 Taraskievic, Branislau. Bielaruskaja gramatyka dla skol. Vilnia: Vyd. 3250 "Bielaruskaha kamitetu", 1929, 5th edition. 3252 Buslakou, Juras; Viacorka, Vincuk; Sanko, Zmicier; Sauka, Zmicier. 3253 Bielaruski klasycny pravapis. Vilnia-Miensk, 2005. 3255 6. Any other relevant information: 3257 Belarusian in Taraskievica orthography became widely used, especially in 3258 Belarusian-speaking Internet segment, but besides this some books and 3259 newspapers are also printed using this orthography of Belarusian. 3261 Authors' Addresses 3263 Addison Phillips (editor) 3264 Lab126 3266 Email: addison@inter-locale.com 3267 URI: http://www.inter-locale.com 3269 Mark Davis (editor) 3270 Google 3272 Email: mark.davis@google.com 3274 Full Copyright Statement 3276 Copyright (C) The IETF Trust (2008). 3278 This document is subject to the rights, licenses and restrictions 3279 contained in BCP 78, and except as set forth therein, the authors 3280 retain all their rights. 3282 This document and the information contained herein are provided on an 3283 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 3284 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 3285 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 3286 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 3287 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 3288 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 3290 Intellectual Property 3292 The IETF takes no position regarding the validity or scope of any 3293 Intellectual Property Rights or other rights that might be claimed to 3294 pertain to the implementation or use of the technology described in 3295 this document or the extent to which any license under such rights 3296 might or might not be available; nor does it represent that it has 3297 made any independent effort to identify any such rights. Information 3298 on the procedures with respect to rights in RFC documents can be 3299 found in BCP 78 and BCP 79. 3301 Copies of IPR disclosures made to the IETF Secretariat and any 3302 assurances of licenses to be made available, or the result of an 3303 attempt made to obtain a general license or permission for the use of 3304 such proprietary rights by implementers or users of this 3305 specification can be obtained from the IETF on-line IPR repository at 3306 http://www.ietf.org/ipr. 3308 The IETF invites any interested party to bring to its attention any 3309 copyrights, patents or patent applications, or other proprietary 3310 rights that may cover technology that may be required to implement 3311 this standard. Please address the information to the IETF at 3312 ietf-ipr@ietf.org.