language-tag = langtag ; normal language tags / privateuse ; private use tag / grandfathered ; grandfathered tags langtag = language ["-" script] ["-" region] *("-" variant) *("-" extensions) ["-" privateuse] language = 2*3ALPHA ; shortest ISO 639 code ;["-" extlang] ; sometimes followed by ; extended language subtags / 4ALPHA ; or reserved for future use / 5*8ALPHA extlang = 3ALPHA ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently reserved script = 4ALPHA territory = 2ALPHA ; ISO 3166-1 code / 3DIGIT variant = 5*8alphanum ; registered variants / (DIGIT 3alphanum) extensions = locale / transform / extension extension = singleton 1*("-" (2*8alphanum)) ; The following is the syntax for the extensions managed ; by CLDR. These are extensions "u" for locale and "t" ; for transforms locale = "u" (1*("-" keyword) / 1*("-" attribute) *("-" keyword)) transform = "t" (1*("-" keyword)) keyword = key ["-" type] key = 2alphanum type = 3*8alphanum *("-" 3*8alphanum) attribute = 3*8alphanum ; Single alphanumerics ; "x" reserved for private use ; "u" reserved for CLDR use as locale ; "t" reserved for CLDR use as tranforms singleton = DIGIT ; 0 - 9 / %x41-53 ; A - S / %x56-57 ; V - W / %x59-5A ; Y - Z / %x61-73 ; a - s / %x76-77 ; v - w / %x79-7A ; y - z privateuse = "x" 1*("-" (1*8alphanum)) grandfathered = irregular ; non-redundant tags registered / regular ; during the RFC 3066 era irregular = "en-GB-oed" ; irregular tags do not match / "i-ami" ; the 'langtag' production and / "i-bnn" ; would not otherwise be / "i-default" ; considered 'well-formed' / "i-enochian" ; These tags are all valid, / "i-hak" ; but most are deprecated / "i-klingon" ; in favor of more modern / "i-lux" ; subtags or subtag / "i-mingo" ; combination / "i-navajo" / "i-pwn" / "i-tao" / "i-tay" / "i-tsu" / "sgn-BE-FR" / "sgn-BE-NL" / "sgn-CH-DE" regular = "art-lojban" ; these tags match the 'langtag' / "cel-gaulish" ; production, but their subtags / "no-bok" ; are not extended language / "no-nyn" ; or variant subtags: their meaning / "zh-guoyu" ; is defined by their registration / "zh-hakka" ; and all of these are deprecated / "zh-min" ; in favor of a more modern / "zh-min-nan" ; subtag or sequence of subtags / "zh-xiang" alphanum = (ALPHA / DIGIT) ; letters and numbers