| 1 | /* == Start of generated table == */ | 
|---|
| 2 | /* | 
|---|
| 3 | * The following table is generated by running: | 
|---|
| 4 | * | 
|---|
| 5 | *   ./gen-tag-table.py languagetags language-subtag-registry | 
|---|
| 6 | * | 
|---|
| 7 | * on files with these headers: | 
|---|
| 8 | * | 
|---|
| 9 | * <meta name="updated_at" content="2018-11-18 05:25 AM" /> | 
|---|
| 10 | * File-Date: 2019-04-03 | 
|---|
| 11 | */ | 
|---|
| 12 |  | 
|---|
| 13 | #ifndef HB_OT_TAG_TABLE_HH | 
|---|
| 14 | #define HB_OT_TAG_TABLE_HH | 
|---|
| 15 |  | 
|---|
| 16 | static const LangTag ot_languages[] = { | 
|---|
| 17 | { "aa",	HB_TAG('A','F','R',' ')},	/* Afar */ | 
|---|
| 18 | { "aae",	HB_TAG('S','Q','I',' ')},	/* Arbëreshë Albanian -> Albanian */ | 
|---|
| 19 | { "aao",	HB_TAG('A','R','A',' ')},	/* Algerian Saharan Arabic -> Arabic */ | 
|---|
| 20 | { "aat",	HB_TAG('S','Q','I',' ')},	/* Arvanitika Albanian -> Albanian */ | 
|---|
| 21 | { "ab",	HB_TAG('A','B','K',' ')},	/* Abkhazian */ | 
|---|
| 22 | { "abh",	HB_TAG('A','R','A',' ')},	/* Tajiki Arabic -> Arabic */ | 
|---|
| 23 | { "abq",	HB_TAG('A','B','A',' ')},	/* Abaza */ | 
|---|
| 24 | { "abv",	HB_TAG('A','R','A',' ')},	/* Baharna Arabic -> Arabic */ | 
|---|
| 25 | { "acf",	HB_TAG('F','A','N',' ')},	/* Saint Lucian Creole French -> French Antillean */ | 
|---|
| 26 | /*{"ach",	HB_TAG('A','C','H',' ')},*/	/* Acoli -> Acholi */ | 
|---|
| 27 | { "acm",	HB_TAG('A','R','A',' ')},	/* Mesopotamian Arabic -> Arabic */ | 
|---|
| 28 | { "acq",	HB_TAG('A','R','A',' ')},	/* Ta'izzi-Adeni Arabic -> Arabic */ | 
|---|
| 29 | /*{"acr",	HB_TAG('A','C','R',' ')},*/	/* Achi */ | 
|---|
| 30 | { "acw",	HB_TAG('A','R','A',' ')},	/* Hijazi Arabic -> Arabic */ | 
|---|
| 31 | { "acx",	HB_TAG('A','R','A',' ')},	/* Omani Arabic -> Arabic */ | 
|---|
| 32 | { "acy",	HB_TAG('A','R','A',' ')},	/* Cypriot Arabic -> Arabic */ | 
|---|
| 33 | { "ada",	HB_TAG('D','N','G',' ')},	/* Adangme -> Dangme */ | 
|---|
| 34 | { "adf",	HB_TAG('A','R','A',' ')},	/* Dhofari Arabic -> Arabic */ | 
|---|
| 35 | { "adp",	HB_TAG('D','Z','N',' ')},	/* Adap (retired code) -> Dzongkha */ | 
|---|
| 36 | /*{"ady",	HB_TAG('A','D','Y',' ')},*/	/* Adyghe */ | 
|---|
| 37 | { "aeb",	HB_TAG('A','R','A',' ')},	/* Tunisian Arabic -> Arabic */ | 
|---|
| 38 | { "aec",	HB_TAG('A','R','A',' ')},	/* Saidi Arabic -> Arabic */ | 
|---|
| 39 | { "af",	HB_TAG('A','F','K',' ')},	/* Afrikaans */ | 
|---|
| 40 | { "afb",	HB_TAG('A','R','A',' ')},	/* Gulf Arabic -> Arabic */ | 
|---|
| 41 | { "ahg",	HB_TAG('A','G','W',' ')},	/* Qimant -> Agaw */ | 
|---|
| 42 | { "aht",	HB_TAG('A','T','H',' ')},	/* Ahtena -> Athapaskan */ | 
|---|
| 43 | { "aii",	HB_TAG('S','W','A',' ')},	/* Assyrian Neo-Aramaic -> Swadaya Aramaic */ | 
|---|
| 44 | { "aii",	HB_TAG('S','Y','R',' ')},	/* Assyrian Neo-Aramaic -> Syriac */ | 
|---|
| 45 | /*{"aio",	HB_TAG('A','I','O',' ')},*/	/* Aiton */ | 
|---|
| 46 | { "aiw",	HB_TAG('A','R','I',' ')},	/* Aari */ | 
|---|
| 47 | { "ajp",	HB_TAG('A','R','A',' ')},	/* South Levantine Arabic -> Arabic */ | 
|---|
| 48 | { "ak",	HB_TAG('A','K','A',' ')},	/* Akan [macrolanguage] */ | 
|---|
| 49 | { "ak",	HB_TAG('T','W','I',' ')},	/* Akan [macrolanguage] -> Twi */ | 
|---|
| 50 | { "aln",	HB_TAG('S','Q','I',' ')},	/* Gheg Albanian -> Albanian */ | 
|---|
| 51 | { "als",	HB_TAG('S','Q','I',' ')},	/* Tosk Albanian -> Albanian */ | 
|---|
| 52 | /*{"alt",	HB_TAG('A','L','T',' ')},*/	/* Southern Altai -> Altai */ | 
|---|
| 53 | { "am",	HB_TAG('A','M','H',' ')},	/* Amharic */ | 
|---|
| 54 | { "amf",	HB_TAG('H','B','N',' ')},	/* Hamer-Banna -> Hammer-Banna */ | 
|---|
| 55 | { "amw",	HB_TAG('S','Y','R',' ')},	/* Western Neo-Aramaic -> Syriac */ | 
|---|
| 56 | { "an",	HB_TAG('A','R','G',' ')},	/* Aragonese */ | 
|---|
| 57 | /*{"ang",	HB_TAG('A','N','G',' ')},*/	/* Old English (ca. 450-1100) -> Anglo-Saxon */ | 
|---|
| 58 | { "apc",	HB_TAG('A','R','A',' ')},	/* North Levantine Arabic -> Arabic */ | 
|---|
| 59 | { "apd",	HB_TAG('A','R','A',' ')},	/* Sudanese Arabic -> Arabic */ | 
|---|
| 60 | { "apj",	HB_TAG('A','T','H',' ')},	/* Jicarilla Apache -> Athapaskan */ | 
|---|
| 61 | { "apk",	HB_TAG('A','T','H',' ')},	/* Kiowa Apache -> Athapaskan */ | 
|---|
| 62 | { "apl",	HB_TAG('A','T','H',' ')},	/* Lipan Apache -> Athapaskan */ | 
|---|
| 63 | { "apm",	HB_TAG('A','T','H',' ')},	/* Mescalero-Chiricahua Apache -> Athapaskan */ | 
|---|
| 64 | { "apw",	HB_TAG('A','T','H',' ')},	/* Western Apache -> Athapaskan */ | 
|---|
| 65 | { "ar",	HB_TAG('A','R','A',' ')},	/* Arabic [macrolanguage] */ | 
|---|
| 66 | { "arb",	HB_TAG('A','R','A',' ')},	/* Standard Arabic -> Arabic */ | 
|---|
| 67 | { "arn",	HB_TAG('M','A','P',' ')},	/* Mapudungun */ | 
|---|
| 68 | { "arq",	HB_TAG('A','R','A',' ')},	/* Algerian Arabic -> Arabic */ | 
|---|
| 69 | { "ars",	HB_TAG('A','R','A',' ')},	/* Najdi Arabic -> Arabic */ | 
|---|
| 70 | { "ary",	HB_TAG('M','O','R',' ')},	/* Moroccan Arabic -> Moroccan */ | 
|---|
| 71 | { "arz",	HB_TAG('A','R','A',' ')},	/* Egyptian Arabic -> Arabic */ | 
|---|
| 72 | { "as",	HB_TAG('A','S','M',' ')},	/* Assamese */ | 
|---|
| 73 | /*{"ast",	HB_TAG('A','S','T',' ')},*/	/* Asturian */ | 
|---|
| 74 | /*{"ath",	HB_TAG('A','T','H',' ')},*/	/* Athapascan [family] -> Athapaskan */ | 
|---|
| 75 | { "atj",	HB_TAG('R','C','R',' ')},	/* Atikamekw -> R-Cree */ | 
|---|
| 76 | { "atv",	HB_TAG('A','L','T',' ')},	/* Northern Altai -> Altai */ | 
|---|
| 77 | { "auz",	HB_TAG('A','R','A',' ')},	/* Uzbeki Arabic -> Arabic */ | 
|---|
| 78 | { "av",	HB_TAG('A','V','R',' ')},	/* Avaric -> Avar */ | 
|---|
| 79 | { "avl",	HB_TAG('A','R','A',' ')},	/* Eastern Egyptian Bedawi Arabic -> Arabic */ | 
|---|
| 80 | /*{"awa",	HB_TAG('A','W','A',' ')},*/	/* Awadhi */ | 
|---|
| 81 | { "ay",	HB_TAG('A','Y','M',' ')},	/* Aymara [macrolanguage] */ | 
|---|
| 82 | { "ayc",	HB_TAG('A','Y','M',' ')},	/* Southern Aymara -> Aymara */ | 
|---|
| 83 | { "ayh",	HB_TAG('A','R','A',' ')},	/* Hadrami Arabic -> Arabic */ | 
|---|
| 84 | { "ayl",	HB_TAG('A','R','A',' ')},	/* Libyan Arabic -> Arabic */ | 
|---|
| 85 | { "ayn",	HB_TAG('A','R','A',' ')},	/* Sanaani Arabic -> Arabic */ | 
|---|
| 86 | { "ayp",	HB_TAG('A','R','A',' ')},	/* North Mesopotamian Arabic -> Arabic */ | 
|---|
| 87 | { "ayr",	HB_TAG('A','Y','M',' ')},	/* Central Aymara -> Aymara */ | 
|---|
| 88 | { "az",	HB_TAG('A','Z','E',' ')},	/* Azerbaijani [macrolanguage] */ | 
|---|
| 89 | /*{"azb",	HB_TAG('A','Z','B',' ')},*/	/* South Azerbaijani -> Torki */ | 
|---|
| 90 | { "azj",	HB_TAG('A','Z','E',' ')},	/* North Azerbaijani -> Azerbaijani */ | 
|---|
| 91 | { "ba",	HB_TAG('B','S','H',' ')},	/* Bashkir */ | 
|---|
| 92 | { "bad",	HB_TAG('B','A','D','0')},	/* Banda [family] */ | 
|---|
| 93 | { "bai",	HB_TAG('B','M','L',' ')},	/* Bamileke [family] */ | 
|---|
| 94 | { "bal",	HB_TAG('B','L','I',' ')},	/* Baluchi [macrolanguage] */ | 
|---|
| 95 | /*{"ban",	HB_TAG('B','A','N',' ')},*/	/* Balinese */ | 
|---|
| 96 | /*{"bar",	HB_TAG('B','A','R',' ')},*/	/* Bavarian */ | 
|---|
| 97 | /*{"bbc",	HB_TAG('B','B','C',' ')},*/	/* Batak Toba */ | 
|---|
| 98 | { "bbz",	HB_TAG('A','R','A',' ')},	/* Babalia Creole Arabic -> Arabic */ | 
|---|
| 99 | { "bcc",	HB_TAG('B','L','I',' ')},	/* Southern Balochi -> Baluchi */ | 
|---|
| 100 | { "bci",	HB_TAG('B','A','U',' ')},	/* Baoulé -> Baulé */ | 
|---|
| 101 | { "bcl",	HB_TAG('B','I','K',' ')},	/* Central Bikol -> Bikol */ | 
|---|
| 102 | { "bcq",	HB_TAG('B','C','H',' ')},	/* Bench */ | 
|---|
| 103 | { "bcr",	HB_TAG('A','T','H',' ')},	/* Babine -> Athapaskan */ | 
|---|
| 104 | /*{"bdy",	HB_TAG('B','D','Y',' ')},*/	/* Bandjalang */ | 
|---|
| 105 | { "be",	HB_TAG('B','E','L',' ')},	/* Belarusian -> Belarussian */ | 
|---|
| 106 | { "bea",	HB_TAG('A','T','H',' ')},	/* Beaver -> Athapaskan */ | 
|---|
| 107 | { "beb",	HB_TAG('B','T','I',' ')},	/* Bebele -> Beti */ | 
|---|
| 108 | /*{"bem",	HB_TAG('B','E','M',' ')},*/	/* Bemba (Zambia) */ | 
|---|
| 109 | { "ber",	HB_TAG('B','B','R',' ')},	/* Berber [family] */ | 
|---|
| 110 | { "bfq",	HB_TAG('B','A','D',' ')},	/* Badaga */ | 
|---|
| 111 | { "bft",	HB_TAG('B','L','T',' ')},	/* Balti */ | 
|---|
| 112 | { "bfu",	HB_TAG('L','A','H',' ')},	/* Gahri -> Lahuli */ | 
|---|
| 113 | { "bfy",	HB_TAG('B','A','G',' ')},	/* Bagheli -> Baghelkhandi */ | 
|---|
| 114 | { "bg",	HB_TAG('B','G','R',' ')},	/* Bulgarian */ | 
|---|
| 115 | /*{"bgc",	HB_TAG('B','G','C',' ')},*/	/* Haryanvi */ | 
|---|
| 116 | { "bgn",	HB_TAG('B','L','I',' ')},	/* Western Balochi -> Baluchi */ | 
|---|
| 117 | { "bgp",	HB_TAG('B','L','I',' ')},	/* Eastern Balochi -> Baluchi */ | 
|---|
| 118 | /*{"bgq",	HB_TAG('B','G','Q',' ')},*/	/* Bagri */ | 
|---|
| 119 | { "bgr",	HB_TAG('Q','I','N',' ')},	/* Bawm Chin -> Chin */ | 
|---|
| 120 | { "bhb",	HB_TAG('B','H','I',' ')},	/* Bhili */ | 
|---|
| 121 | /*{"bhi",	HB_TAG('B','H','I',' ')},*/	/* Bhilali -> Bhili */ | 
|---|
| 122 | { "bhk",	HB_TAG('B','I','K',' ')},	/* Albay Bicolano (retired code) -> Bikol */ | 
|---|
| 123 | /*{"bho",	HB_TAG('B','H','O',' ')},*/	/* Bhojpuri */ | 
|---|
| 124 | { "bhr",	HB_TAG('M','L','G',' ')},	/* Bara Malagasy -> Malagasy */ | 
|---|
| 125 | { "bi",	HB_TAG('B','I','S',' ')},	/* Bislama */ | 
|---|
| 126 | /*{"bik",	HB_TAG('B','I','K',' ')},*/	/* Bikol [macrolanguage] */ | 
|---|
| 127 | { "bin",	HB_TAG('E','D','O',' ')},	/* Edo */ | 
|---|
| 128 | /*{"bjj",	HB_TAG('B','J','J',' ')},*/	/* Kanauji */ | 
|---|
| 129 | { "bjn",	HB_TAG('M','L','Y',' ')},	/* Banjar -> Malay */ | 
|---|
| 130 | { "bjq",	HB_TAG('M','L','G',' ')},	/* Southern Betsimisaraka Malagasy (retired code) -> Malagasy */ | 
|---|
| 131 | { "bjt",	HB_TAG('B','L','N',' ')},	/* Balanta-Ganja -> Balante */ | 
|---|
| 132 | { "bla",	HB_TAG('B','K','F',' ')},	/* Siksika -> Blackfoot */ | 
|---|
| 133 | { "ble",	HB_TAG('B','L','N',' ')},	/* Balanta-Kentohe -> Balante */ | 
|---|
| 134 | /*{"blk",	HB_TAG('B','L','K',' ')},*/	/* Pa’o Karen */ | 
|---|
| 135 | { "bln",	HB_TAG('B','I','K',' ')},	/* Southern Catanduanes Bikol -> Bikol */ | 
|---|
| 136 | { "bm",	HB_TAG('B','M','B',' ')},	/* Bambara (Bamanankan) */ | 
|---|
| 137 | { "bmm",	HB_TAG('M','L','G',' ')},	/* Northern Betsimisaraka Malagasy -> Malagasy */ | 
|---|
| 138 | { "bn",	HB_TAG('B','E','N',' ')},	/* Bengali */ | 
|---|
| 139 | { "bo",	HB_TAG('T','I','B',' ')},	/* Tibetan */ | 
|---|
| 140 | /*{"bpy",	HB_TAG('B','P','Y',' ')},*/	/* Bishnupriya -> Bishnupriya Manipuri */ | 
|---|
| 141 | { "bqi",	HB_TAG('L','R','C',' ')},	/* Bakhtiari -> Luri */ | 
|---|
| 142 | { "br",	HB_TAG('B','R','E',' ')},	/* Breton */ | 
|---|
| 143 | { "bra",	HB_TAG('B','R','I',' ')},	/* Braj -> Braj Bhasha */ | 
|---|
| 144 | /*{"brh",	HB_TAG('B','R','H',' ')},*/	/* Brahui */ | 
|---|
| 145 | /*{"brx",	HB_TAG('B','R','X',' ')},*/	/* Bodo (India) */ | 
|---|
| 146 | { "bs",	HB_TAG('B','O','S',' ')},	/* Bosnian */ | 
|---|
| 147 | /*{"bsk",	HB_TAG('B','S','K',' ')},*/	/* Burushaski */ | 
|---|
| 148 | { "btb",	HB_TAG('B','T','I',' ')},	/* Beti (Cameroon) (retired code) */ | 
|---|
| 149 | { "btj",	HB_TAG('M','L','Y',' ')},	/* Bacanese Malay -> Malay */ | 
|---|
| 150 | { "bto",	HB_TAG('B','I','K',' ')},	/* Rinconada Bikol -> Bikol */ | 
|---|
| 151 | /*{"bts",	HB_TAG('B','T','S',' ')},*/	/* Batak Simalungun */ | 
|---|
| 152 | /*{"bug",	HB_TAG('B','U','G',' ')},*/	/* Buginese -> Bugis */ | 
|---|
| 153 | { "bum",	HB_TAG('B','T','I',' ')},	/* Bulu (Cameroon) -> Beti */ | 
|---|
| 154 | { "bve",	HB_TAG('M','L','Y',' ')},	/* Berau Malay -> Malay */ | 
|---|
| 155 | { "bvu",	HB_TAG('M','L','Y',' ')},	/* Bukit Malay -> Malay */ | 
|---|
| 156 | { "bxk",	HB_TAG('L','U','H',' ')},	/* Bukusu -> Luyia */ | 
|---|
| 157 | { "bxp",	HB_TAG('B','T','I',' ')},	/* Bebil -> Beti */ | 
|---|
| 158 | { "bxr",	HB_TAG('R','B','U',' ')},	/* Russia Buriat -> Russian Buriat */ | 
|---|
| 159 | { "byn",	HB_TAG('B','I','L',' ')},	/* Bilin -> Bilen */ | 
|---|
| 160 | /*{"byv",	HB_TAG('B','Y','V',' ')},*/	/* Medumba */ | 
|---|
| 161 | { "bzc",	HB_TAG('M','L','G',' ')},	/* Southern Betsimisaraka Malagasy -> Malagasy */ | 
|---|
| 162 | { "ca",	HB_TAG('C','A','T',' ')},	/* Catalan */ | 
|---|
| 163 | { "caf",	HB_TAG('C','R','R',' ')},	/* Southern Carrier -> Carrier */ | 
|---|
| 164 | { "caf",	HB_TAG('A','T','H',' ')},	/* Southern Carrier -> Athapaskan */ | 
|---|
| 165 | /*{"cak",	HB_TAG('C','A','K',' ')},*/	/* Kaqchikel */ | 
|---|
| 166 | /*{"cbk",	HB_TAG('C','B','K',' ')},*/	/* Chavacano -> Zamboanga Chavacano */ | 
|---|
| 167 | { "cbl",	HB_TAG('Q','I','N',' ')},	/* Bualkhaw Chin -> Chin */ | 
|---|
| 168 | { "cco",	HB_TAG('C','C','H','N')},	/* Comaltepec Chinantec -> Chinantec */ | 
|---|
| 169 | { "ccq",	HB_TAG('A','R','K',' ')},	/* Chaungtha (retired code) -> Rakhine */ | 
|---|
| 170 | { "cdo",	HB_TAG('Z','H','S',' ')},	/* Min Dong Chinese -> Chinese Simplified */ | 
|---|
| 171 | { "ce",	HB_TAG('C','H','E',' ')},	/* Chechen */ | 
|---|
| 172 | /*{"ceb",	HB_TAG('C','E','B',' ')},*/	/* Cebuano */ | 
|---|
| 173 | { "cfm",	HB_TAG('H','A','L',' ')},	/* Halam (Falam Chin) */ | 
|---|
| 174 | /*{"cgg",	HB_TAG('C','G','G',' ')},*/	/* Chiga */ | 
|---|
| 175 | { "ch",	HB_TAG('C','H','A',' ')},	/* Chamorro */ | 
|---|
| 176 | { "chj",	HB_TAG('C','C','H','N')},	/* Ojitlán Chinantec -> Chinantec */ | 
|---|
| 177 | { "chk",	HB_TAG('C','H','K','0')},	/* Chuukese */ | 
|---|
| 178 | /*{"cho",	HB_TAG('C','H','O',' ')},*/	/* Choctaw */ | 
|---|
| 179 | { "chp",	HB_TAG('C','H','P',' ')},	/* Chipewyan */ | 
|---|
| 180 | { "chp",	HB_TAG('S','A','Y',' ')},	/* Chipewyan -> Sayisi */ | 
|---|
| 181 | { "chp",	HB_TAG('A','T','H',' ')},	/* Chipewyan -> Athapaskan */ | 
|---|
| 182 | { "chq",	HB_TAG('C','C','H','N')},	/* Quiotepec Chinantec -> Chinantec */ | 
|---|
| 183 | /*{"chr",	HB_TAG('C','H','R',' ')},*/	/* Cherokee */ | 
|---|
| 184 | /*{"chy",	HB_TAG('C','H','Y',' ')},*/	/* Cheyenne */ | 
|---|
| 185 | { "chz",	HB_TAG('C','C','H','N')},	/* Ozumacín Chinantec -> Chinantec */ | 
|---|
| 186 | { "ciw",	HB_TAG('O','J','B',' ')},	/* Chippewa -> Ojibway */ | 
|---|
| 187 | /*{"cja",	HB_TAG('C','J','A',' ')},*/	/* Western Cham */ | 
|---|
| 188 | /*{"cjm",	HB_TAG('C','J','M',' ')},*/	/* Eastern Cham */ | 
|---|
| 189 | { "cjy",	HB_TAG('Z','H','S',' ')},	/* Jinyu Chinese -> Chinese Simplified */ | 
|---|
| 190 | { "cka",	HB_TAG('Q','I','N',' ')},	/* Khumi Awa Chin (retired code) -> Chin */ | 
|---|
| 191 | { "ckb",	HB_TAG('K','U','R',' ')},	/* Central Kurdish -> Kurdish */ | 
|---|
| 192 | { "ckt",	HB_TAG('C','H','K',' ')},	/* Chukot -> Chukchi */ | 
|---|
| 193 | { "clc",	HB_TAG('A','T','H',' ')},	/* Chilcotin -> Athapaskan */ | 
|---|
| 194 | { "cld",	HB_TAG('S','Y','R',' ')},	/* Chaldean Neo-Aramaic -> Syriac */ | 
|---|
| 195 | { "cle",	HB_TAG('C','C','H','N')},	/* Lealao Chinantec -> Chinantec */ | 
|---|
| 196 | { "cmn",	HB_TAG('Z','H','S',' ')},	/* Mandarin Chinese -> Chinese Simplified */ | 
|---|
| 197 | { "cmr",	HB_TAG('Q','I','N',' ')},	/* Mro-Khimi Chin -> Chin */ | 
|---|
| 198 | { "cnb",	HB_TAG('Q','I','N',' ')},	/* Chinbon Chin -> Chin */ | 
|---|
| 199 | { "cnh",	HB_TAG('Q','I','N',' ')},	/* Hakha Chin -> Chin */ | 
|---|
| 200 | { "cnk",	HB_TAG('Q','I','N',' ')},	/* Khumi Chin -> Chin */ | 
|---|
| 201 | { "cnl",	HB_TAG('C','C','H','N')},	/* Lalana Chinantec -> Chinantec */ | 
|---|
| 202 | { "cnt",	HB_TAG('C','C','H','N')},	/* Tepetotutla Chinantec -> Chinantec */ | 
|---|
| 203 | { "cnw",	HB_TAG('Q','I','N',' ')},	/* Ngawn Chin -> Chin */ | 
|---|
| 204 | { "co",	HB_TAG('C','O','S',' ')},	/* Corsican */ | 
|---|
| 205 | { "coa",	HB_TAG('M','L','Y',' ')},	/* Cocos Islands Malay -> Malay */ | 
|---|
| 206 | /*{"cop",	HB_TAG('C','O','P',' ')},*/	/* Coptic */ | 
|---|
| 207 | { "coq",	HB_TAG('A','T','H',' ')},	/* Coquille -> Athapaskan */ | 
|---|
| 208 | { "cpa",	HB_TAG('C','C','H','N')},	/* Palantla Chinantec -> Chinantec */ | 
|---|
| 209 | { "cpe",	HB_TAG('C','P','P',' ')},	/* English-based creoles and pidgins [family] -> Creoles */ | 
|---|
| 210 | { "cpf",	HB_TAG('C','P','P',' ')},	/* French-based creoles and pidgins [family] -> Creoles */ | 
|---|
| 211 | /*{"cpp",	HB_TAG('C','P','P',' ')},*/	/* Portuguese-based creoles and pidgins [family] -> Creoles */ | 
|---|
| 212 | { "cpx",	HB_TAG('Z','H','S',' ')},	/* Pu-Xian Chinese -> Chinese Simplified */ | 
|---|
| 213 | { "cqd",	HB_TAG('H','M','N',' ')},	/* Chuanqiandian Cluster Miao -> Hmong */ | 
|---|
| 214 | { "cqu",	HB_TAG('Q','U','H',' ')},	/* Chilean Quechua (retired code) -> Quechua (Bolivia) */ | 
|---|
| 215 | { "cr",	HB_TAG('C','R','E',' ')},	/* Cree [macrolanguage] */ | 
|---|
| 216 | { "cr",	HB_TAG('Y','C','R',' ')},	/* Cree [macrolanguage] -> Y-Cree */ | 
|---|
| 217 | { "crh",	HB_TAG('C','R','T',' ')},	/* Crimean Tatar */ | 
|---|
| 218 | { "crj",	HB_TAG('E','C','R',' ')},	/* Southern East Cree -> Eastern Cree */ | 
|---|
| 219 | { "crk",	HB_TAG('W','C','R',' ')},	/* Plains Cree -> West-Cree */ | 
|---|
| 220 | { "crl",	HB_TAG('E','C','R',' ')},	/* Northern East Cree -> Eastern Cree */ | 
|---|
| 221 | { "crm",	HB_TAG('M','C','R',' ')},	/* Moose Cree */ | 
|---|
| 222 | { "crm",	HB_TAG('L','C','R',' ')},	/* Moose Cree -> L-Cree */ | 
|---|
| 223 | { "crp",	HB_TAG('C','P','P',' ')},	/* Creoles and pidgins [family] -> Creoles */ | 
|---|
| 224 | { "crx",	HB_TAG('C','R','R',' ')},	/* Carrier */ | 
|---|
| 225 | { "crx",	HB_TAG('A','T','H',' ')},	/* Carrier -> Athapaskan */ | 
|---|
| 226 | { "cs",	HB_TAG('C','S','Y',' ')},	/* Czech */ | 
|---|
| 227 | { "csa",	HB_TAG('C','C','H','N')},	/* Chiltepec Chinantec -> Chinantec */ | 
|---|
| 228 | /*{"csb",	HB_TAG('C','S','B',' ')},*/	/* Kashubian */ | 
|---|
| 229 | { "csh",	HB_TAG('Q','I','N',' ')},	/* Asho Chin -> Chin */ | 
|---|
| 230 | { "cso",	HB_TAG('C','C','H','N')},	/* Sochiapam Chinantec -> Chinantec */ | 
|---|
| 231 | { "csw",	HB_TAG('N','C','R',' ')},	/* Swampy Cree -> N-Cree */ | 
|---|
| 232 | { "csw",	HB_TAG('N','H','C',' ')},	/* Swampy Cree -> Norway House Cree */ | 
|---|
| 233 | { "csy",	HB_TAG('Q','I','N',' ')},	/* Siyin Chin -> Chin */ | 
|---|
| 234 | { "ctc",	HB_TAG('A','T','H',' ')},	/* Chetco -> Athapaskan */ | 
|---|
| 235 | { "ctd",	HB_TAG('Q','I','N',' ')},	/* Tedim Chin -> Chin */ | 
|---|
| 236 | { "cte",	HB_TAG('C','C','H','N')},	/* Tepinapa Chinantec -> Chinantec */ | 
|---|
| 237 | /*{"ctg",	HB_TAG('C','T','G',' ')},*/	/* Chittagonian */ | 
|---|
| 238 | { "ctl",	HB_TAG('C','C','H','N')},	/* Tlacoatzintepec Chinantec -> Chinantec */ | 
|---|
| 239 | { "cts",	HB_TAG('B','I','K',' ')},	/* Northern Catanduanes Bikol -> Bikol */ | 
|---|
| 240 | { "cu",	HB_TAG('C','S','L',' ')},	/* Church Slavonic */ | 
|---|
| 241 | { "cuc",	HB_TAG('C','C','H','N')},	/* Usila Chinantec -> Chinantec */ | 
|---|
| 242 | /*{"cuk",	HB_TAG('C','U','K',' ')},*/	/* San Blas Kuna */ | 
|---|
| 243 | { "cv",	HB_TAG('C','H','U',' ')},	/* Chuvash */ | 
|---|
| 244 | { "cvn",	HB_TAG('C','C','H','N')},	/* Valle Nacional Chinantec -> Chinantec */ | 
|---|
| 245 | { "cwd",	HB_TAG('D','C','R',' ')},	/* Woods Cree */ | 
|---|
| 246 | { "cwd",	HB_TAG('T','C','R',' ')},	/* Woods Cree -> TH-Cree */ | 
|---|
| 247 | { "cy",	HB_TAG('W','E','L',' ')},	/* Welsh */ | 
|---|
| 248 | { "czh",	HB_TAG('Z','H','S',' ')},	/* Huizhou Chinese -> Chinese Simplified */ | 
|---|
| 249 | { "czo",	HB_TAG('Z','H','S',' ')},	/* Min Zhong Chinese -> Chinese Simplified */ | 
|---|
| 250 | { "czt",	HB_TAG('Q','I','N',' ')},	/* Zotung Chin -> Chin */ | 
|---|
| 251 | { "da",	HB_TAG('D','A','N',' ')},	/* Danish */ | 
|---|
| 252 | { "dao",	HB_TAG('Q','I','N',' ')},	/* Daai Chin -> Chin */ | 
|---|
| 253 | { "dap",	HB_TAG('N','I','S',' ')},	/* Nisi (India) (retired code) */ | 
|---|
| 254 | /*{"dar",	HB_TAG('D','A','R',' ')},*/	/* Dargwa */ | 
|---|
| 255 | /*{"dax",	HB_TAG('D','A','X',' ')},*/	/* Dayi */ | 
|---|
| 256 | { "de",	HB_TAG('D','E','U',' ')},	/* German */ | 
|---|
| 257 | { "den",	HB_TAG('S','L','A',' ')},	/* Slave (Athapascan) [macrolanguage] -> Slavey */ | 
|---|
| 258 | { "den",	HB_TAG('A','T','H',' ')},	/* Slave (Athapascan) [macrolanguage] -> Athapaskan */ | 
|---|
| 259 | /*{"dgo",	HB_TAG('D','G','O',' ')},*/	/* Dogri */ | 
|---|
| 260 | { "dgr",	HB_TAG('A','T','H',' ')},	/* Dogrib -> Athapaskan */ | 
|---|
| 261 | { "dhd",	HB_TAG('M','A','W',' ')},	/* Dhundari -> Marwari */ | 
|---|
| 262 | /*{"dhg",	HB_TAG('D','H','G',' ')},*/	/* Dhangu */ | 
|---|
| 263 | { "dib",	HB_TAG('D','N','K',' ')},	/* South Central Dinka -> Dinka */ | 
|---|
| 264 | { "dik",	HB_TAG('D','N','K',' ')},	/* Southwestern Dinka -> Dinka */ | 
|---|
| 265 | { "din",	HB_TAG('D','N','K',' ')},	/* Dinka [macrolanguage] */ | 
|---|
| 266 | { "dip",	HB_TAG('D','N','K',' ')},	/* Northeastern Dinka -> Dinka */ | 
|---|
| 267 | /*{"diq",	HB_TAG('D','I','Q',' ')},*/	/* Dimli */ | 
|---|
| 268 | { "diw",	HB_TAG('D','N','K',' ')},	/* Northwestern Dinka -> Dinka */ | 
|---|
| 269 | { "dje",	HB_TAG('D','J','R',' ')},	/* Zarma */ | 
|---|
| 270 | { "djr",	HB_TAG('D','J','R','0')},	/* Djambarrpuyngu */ | 
|---|
| 271 | { "dks",	HB_TAG('D','N','K',' ')},	/* Southeastern Dinka -> Dinka */ | 
|---|
| 272 | { "dng",	HB_TAG('D','U','N',' ')},	/* Dungan */ | 
|---|
| 273 | /*{"dnj",	HB_TAG('D','N','J',' ')},*/	/* Dan */ | 
|---|
| 274 | { "doi",	HB_TAG('D','G','R',' ')},	/* Dogri [macrolanguage] */ | 
|---|
| 275 | { "drh",	HB_TAG('M','N','G',' ')},	/* Darkhat (retired code) -> Mongolian */ | 
|---|
| 276 | { "drw",	HB_TAG('D','R','I',' ')},	/* Darwazi (retired code) -> Dari */ | 
|---|
| 277 | { "dsb",	HB_TAG('L','S','B',' ')},	/* Lower Sorbian */ | 
|---|
| 278 | { "dty",	HB_TAG('N','E','P',' ')},	/* Dotyali -> Nepali */ | 
|---|
| 279 | /*{"duj",	HB_TAG('D','U','J',' ')},*/	/* Dhuwal (retired code) */ | 
|---|
| 280 | { "dup",	HB_TAG('M','L','Y',' ')},	/* Duano -> Malay */ | 
|---|
| 281 | { "dv",	HB_TAG('D','I','V',' ')},	/* Divehi (Dhivehi, Maldivian) */ | 
|---|
| 282 | { "dv",	HB_TAG('D','H','V',' ')},	/* Divehi (Dhivehi, Maldivian) (deprecated) */ | 
|---|
| 283 | { "dwu",	HB_TAG('D','U','J',' ')},	/* Dhuwal */ | 
|---|
| 284 | { "dwy",	HB_TAG('D','U','J',' ')},	/* Dhuwaya -> Dhuwal */ | 
|---|
| 285 | { "dyu",	HB_TAG('J','U','L',' ')},	/* Dyula -> Jula */ | 
|---|
| 286 | { "dz",	HB_TAG('D','Z','N',' ')},	/* Dzongkha */ | 
|---|
| 287 | { "ee",	HB_TAG('E','W','E',' ')},	/* Ewe */ | 
|---|
| 288 | /*{"efi",	HB_TAG('E','F','I',' ')},*/	/* Efik */ | 
|---|
| 289 | { "ekk",	HB_TAG('E','T','I',' ')},	/* Standard Estonian -> Estonian */ | 
|---|
| 290 | { "el",	HB_TAG('E','L','L',' ')},	/* Modern Greek (1453-) -> Greek */ | 
|---|
| 291 | { "emk",	HB_TAG('E','M','K',' ')},	/* Eastern Maninkakan */ | 
|---|
| 292 | { "emk",	HB_TAG('M','N','K',' ')},	/* Eastern Maninkakan -> Maninka */ | 
|---|
| 293 | { "en",	HB_TAG('E','N','G',' ')},	/* English */ | 
|---|
| 294 | { "enb",	HB_TAG('K','A','L',' ')},	/* Markweeta -> Kalenjin */ | 
|---|
| 295 | { "enf",	HB_TAG('F','N','E',' ')},	/* Forest Enets -> Forest Nenets */ | 
|---|
| 296 | { "enh",	HB_TAG('T','N','E',' ')},	/* Tundra Enets -> Tundra Nenets */ | 
|---|
| 297 | { "eo",	HB_TAG('N','T','O',' ')},	/* Esperanto */ | 
|---|
| 298 | { "es",	HB_TAG('E','S','P',' ')},	/* Spanish */ | 
|---|
| 299 | { "esg",	HB_TAG('G','O','N',' ')},	/* Aheri Gondi -> Gondi */ | 
|---|
| 300 | { "esi",	HB_TAG('I','P','K',' ')},	/* North Alaskan Inupiatun -> Inupiat */ | 
|---|
| 301 | { "esk",	HB_TAG('I','P','K',' ')},	/* Northwest Alaska Inupiatun -> Inupiat */ | 
|---|
| 302 | /*{"esu",	HB_TAG('E','S','U',' ')},*/	/* Central Yupik */ | 
|---|
| 303 | { "et",	HB_TAG('E','T','I',' ')},	/* Estonian [macrolanguage] */ | 
|---|
| 304 | { "eto",	HB_TAG('B','T','I',' ')},	/* Eton (Cameroon) -> Beti */ | 
|---|
| 305 | { "eu",	HB_TAG('E','U','Q',' ')},	/* Basque */ | 
|---|
| 306 | { "eve",	HB_TAG('E','V','N',' ')},	/* Even */ | 
|---|
| 307 | { "evn",	HB_TAG('E','V','K',' ')},	/* Evenki */ | 
|---|
| 308 | { "ewo",	HB_TAG('B','T','I',' ')},	/* Ewondo -> Beti */ | 
|---|
| 309 | { "eyo",	HB_TAG('K','A','L',' ')},	/* Keiyo -> Kalenjin */ | 
|---|
| 310 | { "fa",	HB_TAG('F','A','R',' ')},	/* Persian [macrolanguage] */ | 
|---|
| 311 | { "fan",	HB_TAG('F','A','N','0')},	/* Fang (Equatorial Guinea) */ | 
|---|
| 312 | /*{"fat",	HB_TAG('F','A','T',' ')},*/	/* Fanti */ | 
|---|
| 313 | { "fbl",	HB_TAG('B','I','K',' ')},	/* West Albay Bikol -> Bikol */ | 
|---|
| 314 | { "ff",	HB_TAG('F','U','L',' ')},	/* Fulah [macrolanguage] */ | 
|---|
| 315 | { "ffm",	HB_TAG('F','U','L',' ')},	/* Maasina Fulfulde -> Fulah */ | 
|---|
| 316 | { "fi",	HB_TAG('F','I','N',' ')},	/* Finnish */ | 
|---|
| 317 | { "fil",	HB_TAG('P','I','L',' ')},	/* Filipino */ | 
|---|
| 318 | { "fj",	HB_TAG('F','J','I',' ')},	/* Fijian */ | 
|---|
| 319 | { "flm",	HB_TAG('H','A','L',' ')},	/* Halam (Falam Chin) (retired code) */ | 
|---|
| 320 | { "flm",	HB_TAG('Q','I','N',' ')},	/* Falam Chin (retired code) -> Chin */ | 
|---|
| 321 | /*{"fmp",	HB_TAG('F','M','P',' ')},*/	/* Fe’fe’ */ | 
|---|
| 322 | { "fo",	HB_TAG('F','O','S',' ')},	/* Faroese */ | 
|---|
| 323 | /*{"fon",	HB_TAG('F','O','N',' ')},*/	/* Fon */ | 
|---|
| 324 | { "fr",	HB_TAG('F','R','A',' ')},	/* French */ | 
|---|
| 325 | /*{"frc",	HB_TAG('F','R','C',' ')},*/	/* Cajun French */ | 
|---|
| 326 | /*{"frp",	HB_TAG('F','R','P',' ')},*/	/* Arpitan */ | 
|---|
| 327 | { "fub",	HB_TAG('F','U','L',' ')},	/* Adamawa Fulfulde -> Fulah */ | 
|---|
| 328 | { "fuc",	HB_TAG('F','U','L',' ')},	/* Pulaar -> Fulah */ | 
|---|
| 329 | { "fue",	HB_TAG('F','U','L',' ')},	/* Borgu Fulfulde -> Fulah */ | 
|---|
| 330 | { "fuf",	HB_TAG('F','T','A',' ')},	/* Pular -> Futa */ | 
|---|
| 331 | { "fuh",	HB_TAG('F','U','L',' ')},	/* Western Niger Fulfulde -> Fulah */ | 
|---|
| 332 | { "fui",	HB_TAG('F','U','L',' ')},	/* Bagirmi Fulfulde -> Fulah */ | 
|---|
| 333 | { "fuq",	HB_TAG('F','U','L',' ')},	/* Central-Eastern Niger Fulfulde -> Fulah */ | 
|---|
| 334 | { "fur",	HB_TAG('F','R','L',' ')},	/* Friulian */ | 
|---|
| 335 | /*{"fuv",	HB_TAG('F','U','V',' ')},*/	/* Nigerian Fulfulde */ | 
|---|
| 336 | { "fy",	HB_TAG('F','R','I',' ')},	/* Western Frisian -> Frisian */ | 
|---|
| 337 | { "ga",	HB_TAG('I','R','I',' ')},	/* Irish */ | 
|---|
| 338 | { "gaa",	HB_TAG('G','A','D',' ')},	/* Ga */ | 
|---|
| 339 | /*{"gag",	HB_TAG('G','A','G',' ')},*/	/* Gagauz */ | 
|---|
| 340 | { "gan",	HB_TAG('Z','H','S',' ')},	/* Gan Chinese -> Chinese Simplified */ | 
|---|
| 341 | { "gax",	HB_TAG('O','R','O',' ')},	/* Borana-Arsi-Guji Oromo -> Oromo */ | 
|---|
| 342 | { "gaz",	HB_TAG('O','R','O',' ')},	/* West Central Oromo -> Oromo */ | 
|---|
| 343 | { "gbm",	HB_TAG('G','A','W',' ')},	/* Garhwali */ | 
|---|
| 344 | { "gce",	HB_TAG('A','T','H',' ')},	/* Galice -> Athapaskan */ | 
|---|
| 345 | { "gd",	HB_TAG('G','A','E',' ')},	/* Scottish Gaelic (Gaelic) */ | 
|---|
| 346 | { "gda",	HB_TAG('R','A','J',' ')},	/* Gade Lohar -> Rajasthani */ | 
|---|
| 347 | /*{"gez",	HB_TAG('G','E','Z',' ')},*/	/* Geez */ | 
|---|
| 348 | { "ggo",	HB_TAG('G','O','N',' ')},	/* Southern Gondi (retired code) -> Gondi */ | 
|---|
| 349 | /*{"gih",	HB_TAG('G','I','H',' ')},*/	/* Githabul */ | 
|---|
| 350 | { "gil",	HB_TAG('G','I','L','0')},	/* Kiribati (Gilbertese) */ | 
|---|
| 351 | { "gju",	HB_TAG('R','A','J',' ')},	/* Gujari -> Rajasthani */ | 
|---|
| 352 | /*{"gkp",	HB_TAG('G','K','P',' ')},*/	/* Guinea Kpelle -> Kpelle (Guinea) */ | 
|---|
| 353 | { "gl",	HB_TAG('G','A','L',' ')},	/* Galician */ | 
|---|
| 354 | { "gld",	HB_TAG('N','A','N',' ')},	/* Nanai */ | 
|---|
| 355 | /*{"glk",	HB_TAG('G','L','K',' ')},*/	/* Gilaki */ | 
|---|
| 356 | { "gn",	HB_TAG('G','U','A',' ')},	/* Guarani [macrolanguage] */ | 
|---|
| 357 | /*{"gnn",	HB_TAG('G','N','N',' ')},*/	/* Gumatj */ | 
|---|
| 358 | { "gno",	HB_TAG('G','O','N',' ')},	/* Northern Gondi -> Gondi */ | 
|---|
| 359 | { "gnw",	HB_TAG('G','U','A',' ')},	/* Western Bolivian Guaraní -> Guarani */ | 
|---|
| 360 | /*{"gog",	HB_TAG('G','O','G',' ')},*/	/* Gogo */ | 
|---|
| 361 | { "gom",	HB_TAG('K','O','K',' ')},	/* Goan Konkani -> Konkani */ | 
|---|
| 362 | /*{"gon",	HB_TAG('G','O','N',' ')},*/	/* Gondi [macrolanguage] */ | 
|---|
| 363 | { "grt",	HB_TAG('G','R','O',' ')},	/* Garo */ | 
|---|
| 364 | { "gru",	HB_TAG('S','O','G',' ')},	/* Kistane -> Sodo Gurage */ | 
|---|
| 365 | { "gsw",	HB_TAG('A','L','S',' ')},	/* Alsatian */ | 
|---|
| 366 | { "gu",	HB_TAG('G','U','J',' ')},	/* Gujarati */ | 
|---|
| 367 | /*{"guc",	HB_TAG('G','U','C',' ')},*/	/* Wayuu */ | 
|---|
| 368 | /*{"guf",	HB_TAG('G','U','F',' ')},*/	/* Gupapuyngu */ | 
|---|
| 369 | { "gug",	HB_TAG('G','U','A',' ')},	/* Paraguayan Guaraní -> Guarani */ | 
|---|
| 370 | { "gui",	HB_TAG('G','U','A',' ')},	/* Eastern Bolivian Guaraní -> Guarani */ | 
|---|
| 371 | { "guk",	HB_TAG('G','M','Z',' ')},	/* Gumuz */ | 
|---|
| 372 | { "guk",	HB_TAG('G','U','K',' ')},	/* Gumuz (SIL fonts) */ | 
|---|
| 373 | { "gun",	HB_TAG('G','U','A',' ')},	/* Mbyá Guaraní -> Guarani */ | 
|---|
| 374 | /*{"guz",	HB_TAG('G','U','Z',' ')},*/	/* Gusii */ | 
|---|
| 375 | { "gv",	HB_TAG('M','N','X',' ')},	/* Manx */ | 
|---|
| 376 | { "gwi",	HB_TAG('A','T','H',' ')},	/* Gwichʼin -> Athapaskan */ | 
|---|
| 377 | { "ha",	HB_TAG('H','A','U',' ')},	/* Hausa */ | 
|---|
| 378 | { "haa",	HB_TAG('A','T','H',' ')},	/* Han -> Athapaskan */ | 
|---|
| 379 | { "hae",	HB_TAG('O','R','O',' ')},	/* Eastern Oromo -> Oromo */ | 
|---|
| 380 | { "hak",	HB_TAG('Z','H','S',' ')},	/* Hakka Chinese -> Chinese Simplified */ | 
|---|
| 381 | { "har",	HB_TAG('H','R','I',' ')},	/* Harari */ | 
|---|
| 382 | /*{"haw",	HB_TAG('H','A','W',' ')},*/	/* Hawaiian */ | 
|---|
| 383 | /*{"hay",	HB_TAG('H','A','Y',' ')},*/	/* Haya */ | 
|---|
| 384 | /*{"haz",	HB_TAG('H','A','Z',' ')},*/	/* Hazaragi */ | 
|---|
| 385 | { "he",	HB_TAG('I','W','R',' ')},	/* Hebrew */ | 
|---|
| 386 | { "hea",	HB_TAG('H','M','N',' ')},	/* Northern Qiandong Miao -> Hmong */ | 
|---|
| 387 | { "hi",	HB_TAG('H','I','N',' ')},	/* Hindi */ | 
|---|
| 388 | /*{"hil",	HB_TAG('H','I','L',' ')},*/	/* Hiligaynon */ | 
|---|
| 389 | { "hji",	HB_TAG('M','L','Y',' ')},	/* Haji -> Malay */ | 
|---|
| 390 | { "hlt",	HB_TAG('Q','I','N',' ')},	/* Matu Chin -> Chin */ | 
|---|
| 391 | { "hma",	HB_TAG('H','M','N',' ')},	/* Southern Mashan Hmong -> Hmong */ | 
|---|
| 392 | { "hmc",	HB_TAG('H','M','N',' ')},	/* Central Huishui Hmong -> Hmong */ | 
|---|
| 393 | { "hmd",	HB_TAG('H','M','N',' ')},	/* Large Flowery Miao -> Hmong */ | 
|---|
| 394 | { "hme",	HB_TAG('H','M','N',' ')},	/* Eastern Huishui Hmong -> Hmong */ | 
|---|
| 395 | { "hmg",	HB_TAG('H','M','N',' ')},	/* Southwestern Guiyang Hmong -> Hmong */ | 
|---|
| 396 | { "hmh",	HB_TAG('H','M','N',' ')},	/* Southwestern Huishui Hmong -> Hmong */ | 
|---|
| 397 | { "hmi",	HB_TAG('H','M','N',' ')},	/* Northern Huishui Hmong -> Hmong */ | 
|---|
| 398 | { "hmj",	HB_TAG('H','M','N',' ')},	/* Ge -> Hmong */ | 
|---|
| 399 | { "hml",	HB_TAG('H','M','N',' ')},	/* Luopohe Hmong -> Hmong */ | 
|---|
| 400 | { "hmm",	HB_TAG('H','M','N',' ')},	/* Central Mashan Hmong -> Hmong */ | 
|---|
| 401 | /*{"hmn",	HB_TAG('H','M','N',' ')},*/	/* Hmong [macrolanguage] */ | 
|---|
| 402 | { "hmp",	HB_TAG('H','M','N',' ')},	/* Northern Mashan Hmong -> Hmong */ | 
|---|
| 403 | { "hmq",	HB_TAG('H','M','N',' ')},	/* Eastern Qiandong Miao -> Hmong */ | 
|---|
| 404 | { "hms",	HB_TAG('H','M','N',' ')},	/* Southern Qiandong Miao -> Hmong */ | 
|---|
| 405 | { "hmw",	HB_TAG('H','M','N',' ')},	/* Western Mashan Hmong -> Hmong */ | 
|---|
| 406 | { "hmy",	HB_TAG('H','M','N',' ')},	/* Southern Guiyang Hmong -> Hmong */ | 
|---|
| 407 | { "hmz",	HB_TAG('H','M','N',' ')},	/* Hmong Shua -> Hmong */ | 
|---|
| 408 | /*{"hnd",	HB_TAG('H','N','D',' ')},*/	/* Southern Hindko -> Hindko */ | 
|---|
| 409 | { "hne",	HB_TAG('C','H','H',' ')},	/* Chhattisgarhi -> Chattisgarhi */ | 
|---|
| 410 | { "hnj",	HB_TAG('H','M','N',' ')},	/* Hmong Njua -> Hmong */ | 
|---|
| 411 | { "hno",	HB_TAG('H','N','D',' ')},	/* Northern Hindko -> Hindko */ | 
|---|
| 412 | { "ho",	HB_TAG('H','M','O',' ')},	/* Hiri Motu */ | 
|---|
| 413 | { "hoc",	HB_TAG('H','O',' ',' ')},	/* Ho */ | 
|---|
| 414 | { "hoi",	HB_TAG('A','T','H',' ')},	/* Holikachuk -> Athapaskan */ | 
|---|
| 415 | { "hoj",	HB_TAG('H','A','R',' ')},	/* Hadothi -> Harauti */ | 
|---|
| 416 | { "hr",	HB_TAG('H','R','V',' ')},	/* Croatian */ | 
|---|
| 417 | { "hrm",	HB_TAG('H','M','N',' ')},	/* Horned Miao -> Hmong */ | 
|---|
| 418 | { "hsb",	HB_TAG('U','S','B',' ')},	/* Upper Sorbian */ | 
|---|
| 419 | { "hsn",	HB_TAG('Z','H','S',' ')},	/* Xiang Chinese -> Chinese Simplified */ | 
|---|
| 420 | { "ht",	HB_TAG('H','A','I',' ')},	/* Haitian (Haitian Creole) */ | 
|---|
| 421 | { "hu",	HB_TAG('H','U','N',' ')},	/* Hungarian */ | 
|---|
| 422 | { "huj",	HB_TAG('H','M','N',' ')},	/* Northern Guiyang Hmong -> Hmong */ | 
|---|
| 423 | { "hup",	HB_TAG('A','T','H',' ')},	/* Hupa -> Athapaskan */ | 
|---|
| 424 | { "hy",	HB_TAG('H','Y','E','0')},	/* Armenian -> Armenian East */ | 
|---|
| 425 | { "hy",	HB_TAG('H','Y','E',' ')},	/* Armenian */ | 
|---|
| 426 | { "hyw",	HB_TAG('H','Y','E',' ')},	/* Western Armenian -> Armenian */ | 
|---|
| 427 | { "hz",	HB_TAG('H','E','R',' ')},	/* Herero */ | 
|---|
| 428 | { "ia",	HB_TAG('I','N','A',' ')},	/* Interlingua (International Auxiliary Language Association) */ | 
|---|
| 429 | /*{"iba",	HB_TAG('I','B','A',' ')},*/	/* Iban */ | 
|---|
| 430 | /*{"ibb",	HB_TAG('I','B','B',' ')},*/	/* Ibibio */ | 
|---|
| 431 | { "id",	HB_TAG('I','N','D',' ')},	/* Indonesian */ | 
|---|
| 432 | { "ida",	HB_TAG('L','U','H',' ')},	/* Idakho-Isukha-Tiriki -> Luyia */ | 
|---|
| 433 | { "ie",	HB_TAG('I','L','E',' ')},	/* Interlingue */ | 
|---|
| 434 | { "ig",	HB_TAG('I','B','O',' ')},	/* Igbo */ | 
|---|
| 435 | { "igb",	HB_TAG('E','B','I',' ')},	/* Ebira */ | 
|---|
| 436 | { "ii",	HB_TAG('Y','I','M',' ')},	/* Sichuan Yi -> Yi Modern */ | 
|---|
| 437 | { "ijc",	HB_TAG('I','J','O',' ')},	/* Izon -> Ijo */ | 
|---|
| 438 | /*{"ijo",	HB_TAG('I','J','O',' ')},*/	/* Ijo [family] */ | 
|---|
| 439 | { "ik",	HB_TAG('I','P','K',' ')},	/* Inupiaq [macrolanguage] -> Inupiat */ | 
|---|
| 440 | { "ike",	HB_TAG('I','N','U',' ')},	/* Eastern Canadian Inuktitut -> Inuktitut */ | 
|---|
| 441 | { "ikt",	HB_TAG('I','N','U',' ')},	/* Inuinnaqtun -> Inuktitut */ | 
|---|
| 442 | /*{"ilo",	HB_TAG('I','L','O',' ')},*/	/* Iloko -> Ilokano */ | 
|---|
| 443 | { "in",	HB_TAG('I','N','D',' ')},	/* Indonesian (retired code) */ | 
|---|
| 444 | { "ing",	HB_TAG('A','T','H',' ')},	/* Degexit'an -> Athapaskan */ | 
|---|
| 445 | { "inh",	HB_TAG('I','N','G',' ')},	/* Ingush */ | 
|---|
| 446 | { "io",	HB_TAG('I','D','O',' ')},	/* Ido */ | 
|---|
| 447 | { "is",	HB_TAG('I','S','L',' ')},	/* Icelandic */ | 
|---|
| 448 | { "it",	HB_TAG('I','T','A',' ')},	/* Italian */ | 
|---|
| 449 | { "iu",	HB_TAG('I','N','U',' ')},	/* Inuktitut [macrolanguage] */ | 
|---|
| 450 | { "iw",	HB_TAG('I','W','R',' ')},	/* Hebrew (retired code) */ | 
|---|
| 451 | { "ja",	HB_TAG('J','A','N',' ')},	/* Japanese */ | 
|---|
| 452 | { "jak",	HB_TAG('M','L','Y',' ')},	/* Jakun -> Malay */ | 
|---|
| 453 | /*{"jam",	HB_TAG('J','A','M',' ')},*/	/* Jamaican Creole English -> Jamaican Creole */ | 
|---|
| 454 | { "jax",	HB_TAG('M','L','Y',' ')},	/* Jambi Malay -> Malay */ | 
|---|
| 455 | /*{"jbo",	HB_TAG('J','B','O',' ')},*/	/* Lojban */ | 
|---|
| 456 | /*{"jct",	HB_TAG('J','C','T',' ')},*/	/* Krymchak */ | 
|---|
| 457 | { "ji",	HB_TAG('J','I','I',' ')},	/* Yiddish (retired code) */ | 
|---|
| 458 | { "jv",	HB_TAG('J','A','V',' ')},	/* Javanese */ | 
|---|
| 459 | { "jw",	HB_TAG('J','A','V',' ')},	/* Javanese (retired code) */ | 
|---|
| 460 | { "ka",	HB_TAG('K','A','T',' ')},	/* Georgian */ | 
|---|
| 461 | { "kaa",	HB_TAG('K','R','K',' ')},	/* Kara-Kalpak -> Karakalpak */ | 
|---|
| 462 | { "kab",	HB_TAG('K','A','B','0')},	/* Kabyle */ | 
|---|
| 463 | { "kam",	HB_TAG('K','M','B',' ')},	/* Kamba (Kenya) */ | 
|---|
| 464 | { "kar",	HB_TAG('K','R','N',' ')},	/* Karen [family] */ | 
|---|
| 465 | { "kbd",	HB_TAG('K','A','B',' ')},	/* Kabardian */ | 
|---|
| 466 | { "kby",	HB_TAG('K','N','R',' ')},	/* Manga Kanuri -> Kanuri */ | 
|---|
| 467 | { "kca",	HB_TAG('K','H','K',' ')},	/* Khanty -> Khanty-Kazim */ | 
|---|
| 468 | { "kca",	HB_TAG('K','H','S',' ')},	/* Khanty -> Khanty-Shurishkar */ | 
|---|
| 469 | { "kca",	HB_TAG('K','H','V',' ')},	/* Khanty -> Khanty-Vakhi */ | 
|---|
| 470 | /*{"kde",	HB_TAG('K','D','E',' ')},*/	/* Makonde */ | 
|---|
| 471 | { "kdr",	HB_TAG('K','R','M',' ')},	/* Karaim */ | 
|---|
| 472 | { "kdt",	HB_TAG('K','U','Y',' ')},	/* Kuy */ | 
|---|
| 473 | /*{"kea",	HB_TAG('K','E','A',' ')},*/	/* Kabuverdianu (Crioulo) */ | 
|---|
| 474 | /*{"kek",	HB_TAG('K','E','K',' ')},*/	/* Kekchi */ | 
|---|
| 475 | { "kex",	HB_TAG('K','K','N',' ')},	/* Kukna -> Kokni */ | 
|---|
| 476 | { "kfa",	HB_TAG('K','O','D',' ')},	/* Kodava -> Kodagu */ | 
|---|
| 477 | { "kfr",	HB_TAG('K','A','C',' ')},	/* Kachhi -> Kachchi */ | 
|---|
| 478 | { "kfx",	HB_TAG('K','U','L',' ')},	/* Kullu Pahari -> Kulvi */ | 
|---|
| 479 | { "kfy",	HB_TAG('K','M','N',' ')},	/* Kumaoni */ | 
|---|
| 480 | { "kg",	HB_TAG('K','O','N','0')},	/* Kongo [macrolanguage] */ | 
|---|
| 481 | { "kha",	HB_TAG('K','S','I',' ')},	/* Khasi */ | 
|---|
| 482 | { "khb",	HB_TAG('X','B','D',' ')},	/* Lü */ | 
|---|
| 483 | { "khk",	HB_TAG('M','N','G',' ')},	/* Halh Mongolian -> Mongolian */ | 
|---|
| 484 | { "kht",	HB_TAG('K','H','N',' ')},	/* Khamti -> Khamti Shan (Microsoft fonts) */ | 
|---|
| 485 | { "kht",	HB_TAG('K','H','T',' ')},	/* Khamti -> Khamti Shan (OpenType spec and SIL fonts) */ | 
|---|
| 486 | /*{"khw",	HB_TAG('K','H','W',' ')},*/	/* Khowar */ | 
|---|
| 487 | { "ki",	HB_TAG('K','I','K',' ')},	/* Kikuyu (Gikuyu) */ | 
|---|
| 488 | /*{"kiu",	HB_TAG('K','I','U',' ')},*/	/* Kirmanjki */ | 
|---|
| 489 | { "kj",	HB_TAG('K','U','A',' ')},	/* Kuanyama */ | 
|---|
| 490 | /*{"kjd",	HB_TAG('K','J','D',' ')},*/	/* Southern Kiwai */ | 
|---|
| 491 | { "kjh",	HB_TAG('K','H','A',' ')},	/* Khakas -> Khakass */ | 
|---|
| 492 | /*{"kjp",	HB_TAG('K','J','P',' ')},*/	/* Pwo Eastern Karen -> Eastern Pwo Karen */ | 
|---|
| 493 | /*{"kjz",	HB_TAG('K','J','Z',' ')},*/	/* Bumthangkha */ | 
|---|
| 494 | { "kk",	HB_TAG('K','A','Z',' ')},	/* Kazakh */ | 
|---|
| 495 | { "kkz",	HB_TAG('A','T','H',' ')},	/* Kaska -> Athapaskan */ | 
|---|
| 496 | { "kl",	HB_TAG('G','R','N',' ')},	/* Greenlandic */ | 
|---|
| 497 | { "kln",	HB_TAG('K','A','L',' ')},	/* Kalenjin [macrolanguage] */ | 
|---|
| 498 | { "km",	HB_TAG('K','H','M',' ')},	/* Khmer */ | 
|---|
| 499 | { "kmb",	HB_TAG('M','B','N',' ')},	/* Kimbundu -> Mbundu */ | 
|---|
| 500 | { "kmr",	HB_TAG('K','U','R',' ')},	/* Northern Kurdish -> Kurdish */ | 
|---|
| 501 | { "kmw",	HB_TAG('K','M','O',' ')},	/* Komo (Democratic Republic of Congo) */ | 
|---|
| 502 | /*{"kmz",	HB_TAG('K','M','Z',' ')},*/	/* Khorasani Turkish -> Khorasani Turkic */ | 
|---|
| 503 | { "kn",	HB_TAG('K','A','N',' ')},	/* Kannada */ | 
|---|
| 504 | { "knc",	HB_TAG('K','N','R',' ')},	/* Central Kanuri -> Kanuri */ | 
|---|
| 505 | { "kng",	HB_TAG('K','O','N','0')},	/* Koongo -> Kongo */ | 
|---|
| 506 | { "knn",	HB_TAG('K','O','K',' ')},	/* Konkani */ | 
|---|
| 507 | { "ko",	HB_TAG('K','O','R',' ')},	/* Korean */ | 
|---|
| 508 | { "koi",	HB_TAG('K','O','P',' ')},	/* Komi-Permyak */ | 
|---|
| 509 | /*{"kok",	HB_TAG('K','O','K',' ')},*/	/* Konkani [macrolanguage] */ | 
|---|
| 510 | /*{"kos",	HB_TAG('K','O','S',' ')},*/	/* Kosraean */ | 
|---|
| 511 | { "koy",	HB_TAG('A','T','H',' ')},	/* Koyukon -> Athapaskan */ | 
|---|
| 512 | { "kpe",	HB_TAG('K','P','L',' ')},	/* Kpelle [macrolanguage] */ | 
|---|
| 513 | { "kpv",	HB_TAG('K','O','Z',' ')},	/* Komi-Zyrian */ | 
|---|
| 514 | { "kpy",	HB_TAG('K','Y','K',' ')},	/* Koryak */ | 
|---|
| 515 | { "kqs",	HB_TAG('K','I','S',' ')},	/* Northern Kissi -> Kisii */ | 
|---|
| 516 | { "kqy",	HB_TAG('K','R','T',' ')},	/* Koorete */ | 
|---|
| 517 | { "kr",	HB_TAG('K','N','R',' ')},	/* Kanuri [macrolanguage] */ | 
|---|
| 518 | { "krc",	HB_TAG('K','A','R',' ')},	/* Karachay-Balkar -> Karachay */ | 
|---|
| 519 | { "krc",	HB_TAG('B','A','L',' ')},	/* Karachay-Balkar -> Balkar */ | 
|---|
| 520 | /*{"kri",	HB_TAG('K','R','I',' ')},*/	/* Krio */ | 
|---|
| 521 | /*{"krl",	HB_TAG('K','R','L',' ')},*/	/* Karelian */ | 
|---|
| 522 | { "krt",	HB_TAG('K','N','R',' ')},	/* Tumari Kanuri -> Kanuri */ | 
|---|
| 523 | { "kru",	HB_TAG('K','U','U',' ')},	/* Kurukh */ | 
|---|
| 524 | { "ks",	HB_TAG('K','S','H',' ')},	/* Kashmiri */ | 
|---|
| 525 | { "ksh",	HB_TAG('K','S','H','0')},	/* Kölsch -> Ripuarian */ | 
|---|
| 526 | { "kss",	HB_TAG('K','I','S',' ')},	/* Southern Kisi -> Kisii */ | 
|---|
| 527 | /*{"ksw",	HB_TAG('K','S','W',' ')},*/	/* S’gaw Karen */ | 
|---|
| 528 | { "ktb",	HB_TAG('K','E','B',' ')},	/* Kambaata -> Kebena */ | 
|---|
| 529 | { "ktu",	HB_TAG('K','O','N',' ')},	/* Kituba (Democratic Republic of Congo) -> Kikongo */ | 
|---|
| 530 | { "ktw",	HB_TAG('A','T','H',' ')},	/* Kato -> Athapaskan */ | 
|---|
| 531 | { "ku",	HB_TAG('K','U','R',' ')},	/* Kurdish [macrolanguage] */ | 
|---|
| 532 | /*{"kum",	HB_TAG('K','U','M',' ')},*/	/* Kumyk */ | 
|---|
| 533 | { "kuu",	HB_TAG('A','T','H',' ')},	/* Upper Kuskokwim -> Athapaskan */ | 
|---|
| 534 | { "kv",	HB_TAG('K','O','M',' ')},	/* Komi [macrolanguage] */ | 
|---|
| 535 | { "kvb",	HB_TAG('M','L','Y',' ')},	/* Kubu -> Malay */ | 
|---|
| 536 | { "kvr",	HB_TAG('M','L','Y',' ')},	/* Kerinci -> Malay */ | 
|---|
| 537 | { "kw",	HB_TAG('C','O','R',' ')},	/* Cornish */ | 
|---|
| 538 | { "kwy",	HB_TAG('K','O','N','0')},	/* San Salvador Kongo -> Kongo */ | 
|---|
| 539 | { "kxc",	HB_TAG('K','M','S',' ')},	/* Konso -> Komso */ | 
|---|
| 540 | { "kxd",	HB_TAG('M','L','Y',' ')},	/* Brunei -> Malay */ | 
|---|
| 541 | { "kxu",	HB_TAG('K','U','I',' ')},	/* Kui (India) */ | 
|---|
| 542 | { "ky",	HB_TAG('K','I','R',' ')},	/* Kirghiz (Kyrgyz) */ | 
|---|
| 543 | /*{"kyu",	HB_TAG('K','Y','U',' ')},*/	/* Western Kayah */ | 
|---|
| 544 | { "la",	HB_TAG('L','A','T',' ')},	/* Latin */ | 
|---|
| 545 | { "lad",	HB_TAG('J','U','D',' ')},	/* Ladino */ | 
|---|
| 546 | { "lb",	HB_TAG('L','T','Z',' ')},	/* Luxembourgish */ | 
|---|
| 547 | { "lbe",	HB_TAG('L','A','K',' ')},	/* Lak */ | 
|---|
| 548 | { "lbj",	HB_TAG('L','D','K',' ')},	/* Ladakhi */ | 
|---|
| 549 | { "lbl",	HB_TAG('B','I','K',' ')},	/* Libon Bikol -> Bikol */ | 
|---|
| 550 | { "lce",	HB_TAG('M','L','Y',' ')},	/* Loncong -> Malay */ | 
|---|
| 551 | { "lcf",	HB_TAG('M','L','Y',' ')},	/* Lubu -> Malay */ | 
|---|
| 552 | { "ldi",	HB_TAG('K','O','N','0')},	/* Laari -> Kongo */ | 
|---|
| 553 | /*{"lez",	HB_TAG('L','E','Z',' ')},*/	/* Lezghian -> Lezgi */ | 
|---|
| 554 | { "lg",	HB_TAG('L','U','G',' ')},	/* Ganda */ | 
|---|
| 555 | { "li",	HB_TAG('L','I','M',' ')},	/* Limburgish */ | 
|---|
| 556 | { "lif",	HB_TAG('L','M','B',' ')},	/* Limbu */ | 
|---|
| 557 | /*{"lij",	HB_TAG('L','I','J',' ')},*/	/* Ligurian */ | 
|---|
| 558 | /*{"lis",	HB_TAG('L','I','S',' ')},*/	/* Lisu */ | 
|---|
| 559 | { "liw",	HB_TAG('M','L','Y',' ')},	/* Col -> Malay */ | 
|---|
| 560 | /*{"ljp",	HB_TAG('L','J','P',' ')},*/	/* Lampung Api -> Lampung */ | 
|---|
| 561 | { "lkb",	HB_TAG('L','U','H',' ')},	/* Kabras -> Luyia */ | 
|---|
| 562 | /*{"lki",	HB_TAG('L','K','I',' ')},*/	/* Laki */ | 
|---|
| 563 | { "lko",	HB_TAG('L','U','H',' ')},	/* Khayo -> Luyia */ | 
|---|
| 564 | { "lks",	HB_TAG('L','U','H',' ')},	/* Kisa -> Luyia */ | 
|---|
| 565 | { "lld",	HB_TAG('L','A','D',' ')},	/* Ladin */ | 
|---|
| 566 | { "lmn",	HB_TAG('L','A','M',' ')},	/* Lambadi -> Lambani */ | 
|---|
| 567 | /*{"lmo",	HB_TAG('L','M','O',' ')},*/	/* Lombard */ | 
|---|
| 568 | { "ln",	HB_TAG('L','I','N',' ')},	/* Lingala */ | 
|---|
| 569 | { "lo",	HB_TAG('L','A','O',' ')},	/* Lao */ | 
|---|
| 570 | /*{"lom",	HB_TAG('L','O','M',' ')},*/	/* Loma (Liberia) */ | 
|---|
| 571 | /*{"lrc",	HB_TAG('L','R','C',' ')},*/	/* Northern Luri -> Luri */ | 
|---|
| 572 | { "lri",	HB_TAG('L','U','H',' ')},	/* Marachi -> Luyia */ | 
|---|
| 573 | { "lrm",	HB_TAG('L','U','H',' ')},	/* Marama -> Luyia */ | 
|---|
| 574 | { "lsm",	HB_TAG('L','U','H',' ')},	/* Saamia -> Luyia */ | 
|---|
| 575 | { "lt",	HB_TAG('L','T','H',' ')},	/* Lithuanian */ | 
|---|
| 576 | { "ltg",	HB_TAG('L','V','I',' ')},	/* Latgalian -> Latvian */ | 
|---|
| 577 | { "lto",	HB_TAG('L','U','H',' ')},	/* Tsotso -> Luyia */ | 
|---|
| 578 | { "lts",	HB_TAG('L','U','H',' ')},	/* Tachoni -> Luyia */ | 
|---|
| 579 | { "lu",	HB_TAG('L','U','B',' ')},	/* Luba-Katanga */ | 
|---|
| 580 | /*{"lua",	HB_TAG('L','U','A',' ')},*/	/* Luba-Lulua */ | 
|---|
| 581 | /*{"luo",	HB_TAG('L','U','O',' ')},*/	/* Luo (Kenya and Tanzania) */ | 
|---|
| 582 | { "lus",	HB_TAG('M','I','Z',' ')},	/* Lushai -> Mizo */ | 
|---|
| 583 | { "luy",	HB_TAG('L','U','H',' ')},	/* Luyia [macrolanguage] */ | 
|---|
| 584 | { "luz",	HB_TAG('L','R','C',' ')},	/* Southern Luri -> Luri */ | 
|---|
| 585 | { "lv",	HB_TAG('L','V','I',' ')},	/* Latvian [macrolanguage] */ | 
|---|
| 586 | { "lvs",	HB_TAG('L','V','I',' ')},	/* Standard Latvian -> Latvian */ | 
|---|
| 587 | { "lwg",	HB_TAG('L','U','H',' ')},	/* Wanga -> Luyia */ | 
|---|
| 588 | { "lzh",	HB_TAG('Z','H','T',' ')},	/* Literary Chinese -> Chinese Traditional */ | 
|---|
| 589 | { "lzz",	HB_TAG('L','A','Z',' ')},	/* Laz */ | 
|---|
| 590 | /*{"mad",	HB_TAG('M','A','D',' ')},*/	/* Madurese -> Madura */ | 
|---|
| 591 | /*{"mag",	HB_TAG('M','A','G',' ')},*/	/* Magahi */ | 
|---|
| 592 | { "mai",	HB_TAG('M','T','H',' ')},	/* Maithili */ | 
|---|
| 593 | { "mak",	HB_TAG('M','K','R',' ')},	/* Makasar */ | 
|---|
| 594 | /*{"mam",	HB_TAG('M','A','M',' ')},*/	/* Mam */ | 
|---|
| 595 | { "man",	HB_TAG('M','N','K',' ')},	/* Mandingo [macrolanguage] -> Maninka */ | 
|---|
| 596 | { "max",	HB_TAG('M','L','Y',' ')},	/* North Moluccan Malay -> Malay */ | 
|---|
| 597 | /*{"mbo",	HB_TAG('M','B','O',' ')},*/	/* Mbo (Cameroon) */ | 
|---|
| 598 | { "mct",	HB_TAG('B','T','I',' ')},	/* Mengisa -> Beti */ | 
|---|
| 599 | { "mdf",	HB_TAG('M','O','K',' ')},	/* Moksha */ | 
|---|
| 600 | /*{"mdr",	HB_TAG('M','D','R',' ')},*/	/* Mandar */ | 
|---|
| 601 | { "mdy",	HB_TAG('M','L','E',' ')},	/* Male (Ethiopia) */ | 
|---|
| 602 | { "men",	HB_TAG('M','D','E',' ')},	/* Mende (Sierra Leone) */ | 
|---|
| 603 | { "meo",	HB_TAG('M','L','Y',' ')},	/* Kedah Malay -> Malay */ | 
|---|
| 604 | /*{"mer",	HB_TAG('M','E','R',' ')},*/	/* Meru */ | 
|---|
| 605 | /*{"mfa",	HB_TAG('M','F','A',' ')},*/	/* Pattani Malay */ | 
|---|
| 606 | { "mfb",	HB_TAG('M','L','Y',' ')},	/* Bangka -> Malay */ | 
|---|
| 607 | /*{"mfe",	HB_TAG('M','F','E',' ')},*/	/* Morisyen */ | 
|---|
| 608 | { "mg",	HB_TAG('M','L','G',' ')},	/* Malagasy [macrolanguage] */ | 
|---|
| 609 | { "mh",	HB_TAG('M','A','H',' ')},	/* Marshallese */ | 
|---|
| 610 | { "mhr",	HB_TAG('L','M','A',' ')},	/* Eastern Mari -> Low Mari */ | 
|---|
| 611 | { "mhv",	HB_TAG('A','R','K',' ')},	/* Arakanese (retired code) -> Rakhine */ | 
|---|
| 612 | { "mi",	HB_TAG('M','R','I',' ')},	/* Maori */ | 
|---|
| 613 | /*{"min",	HB_TAG('M','I','N',' ')},*/	/* Minangkabau */ | 
|---|
| 614 | { "mk",	HB_TAG('M','K','D',' ')},	/* Macedonian */ | 
|---|
| 615 | { "mku",	HB_TAG('M','N','K',' ')},	/* Konyanka Maninka -> Maninka */ | 
|---|
| 616 | /*{"mkw",	HB_TAG('M','K','W',' ')},*/	/* Kituba (Congo) */ | 
|---|
| 617 | { "ml",	HB_TAG('M','A','L',' ')},	/* Malayalam -> Malayalam Traditional */ | 
|---|
| 618 | { "ml",	HB_TAG('M','L','R',' ')},	/* Malayalam -> Malayalam Reformed */ | 
|---|
| 619 | { "mlq",	HB_TAG('M','L','N',' ')},	/* Western Maninkakan -> Malinke */ | 
|---|
| 620 | { "mlq",	HB_TAG('M','N','K',' ')},	/* Western Maninkakan -> Maninka */ | 
|---|
| 621 | { "mmr",	HB_TAG('H','M','N',' ')},	/* Western Xiangxi Miao -> Hmong */ | 
|---|
| 622 | { "mn",	HB_TAG('M','N','G',' ')},	/* Mongolian [macrolanguage] */ | 
|---|
| 623 | { "mnc",	HB_TAG('M','C','H',' ')},	/* Manchu */ | 
|---|
| 624 | /*{"mni",	HB_TAG('M','N','I',' ')},*/	/* Manipuri */ | 
|---|
| 625 | { "mnk",	HB_TAG('M','N','D',' ')},	/* Mandinka */ | 
|---|
| 626 | { "mnk",	HB_TAG('M','N','K',' ')},	/* Mandinka -> Maninka */ | 
|---|
| 627 | { "mnp",	HB_TAG('Z','H','S',' ')},	/* Min Bei Chinese -> Chinese Simplified */ | 
|---|
| 628 | { "mns",	HB_TAG('M','A','N',' ')},	/* Mansi */ | 
|---|
| 629 | { "mnw",	HB_TAG('M','O','N',' ')},	/* Mon */ | 
|---|
| 630 | { "mo",	HB_TAG('M','O','L',' ')},	/* Moldavian (retired code) */ | 
|---|
| 631 | /*{"moh",	HB_TAG('M','O','H',' ')},*/	/* Mohawk */ | 
|---|
| 632 | /*{"mos",	HB_TAG('M','O','S',' ')},*/	/* Mossi */ | 
|---|
| 633 | { "mpe",	HB_TAG('M','A','J',' ')},	/* Majang */ | 
|---|
| 634 | { "mqg",	HB_TAG('M','L','Y',' ')},	/* Kota Bangun Kutai Malay -> Malay */ | 
|---|
| 635 | { "mr",	HB_TAG('M','A','R',' ')},	/* Marathi */ | 
|---|
| 636 | { "mrh",	HB_TAG('Q','I','N',' ')},	/* Mara Chin -> Chin */ | 
|---|
| 637 | { "mrj",	HB_TAG('H','M','A',' ')},	/* Western Mari -> High Mari */ | 
|---|
| 638 | { "ms",	HB_TAG('M','L','Y',' ')},	/* Malay [macrolanguage] */ | 
|---|
| 639 | { "msc",	HB_TAG('M','N','K',' ')},	/* Sankaran Maninka -> Maninka */ | 
|---|
| 640 | { "msh",	HB_TAG('M','L','G',' ')},	/* Masikoro Malagasy -> Malagasy */ | 
|---|
| 641 | { "msi",	HB_TAG('M','L','Y',' ')},	/* Sabah Malay -> Malay */ | 
|---|
| 642 | { "mt",	HB_TAG('M','T','S',' ')},	/* Maltese */ | 
|---|
| 643 | { "mtr",	HB_TAG('M','A','W',' ')},	/* Mewari -> Marwari */ | 
|---|
| 644 | { "mui",	HB_TAG('M','L','Y',' ')},	/* Musi -> Malay */ | 
|---|
| 645 | { "mup",	HB_TAG('R','A','J',' ')},	/* Malvi -> Rajasthani */ | 
|---|
| 646 | { "muq",	HB_TAG('H','M','N',' ')},	/* Eastern Xiangxi Miao -> Hmong */ | 
|---|
| 647 | /*{"mus",	HB_TAG('M','U','S',' ')},*/	/* Creek -> Muscogee */ | 
|---|
| 648 | { "mvb",	HB_TAG('A','T','H',' ')},	/* Mattole -> Athapaskan */ | 
|---|
| 649 | { "mve",	HB_TAG('M','A','W',' ')},	/* Marwari (Pakistan) */ | 
|---|
| 650 | { "mvf",	HB_TAG('M','N','G',' ')},	/* Peripheral Mongolian -> Mongolian */ | 
|---|
| 651 | { "mwk",	HB_TAG('M','N','K',' ')},	/* Kita Maninkakan -> Maninka */ | 
|---|
| 652 | /*{"mwl",	HB_TAG('M','W','L',' ')},*/	/* Mirandese */ | 
|---|
| 653 | { "mwr",	HB_TAG('M','A','W',' ')},	/* Marwari [macrolanguage] */ | 
|---|
| 654 | /*{"mww",	HB_TAG('M','W','W',' ')},*/	/* Hmong Daw */ | 
|---|
| 655 | { "my",	HB_TAG('B','R','M',' ')},	/* Burmese */ | 
|---|
| 656 | { "mym",	HB_TAG('M','E','N',' ')},	/* Me’en */ | 
|---|
| 657 | /*{"myn",	HB_TAG('M','Y','N',' ')},*/	/* Mayan [family] */ | 
|---|
| 658 | { "myq",	HB_TAG('M','N','K',' ')},	/* Forest Maninka (retired code) -> Maninka */ | 
|---|
| 659 | { "myv",	HB_TAG('E','R','Z',' ')},	/* Erzya */ | 
|---|
| 660 | /*{"mzn",	HB_TAG('M','Z','N',' ')},*/	/* Mazanderani */ | 
|---|
| 661 | { "na",	HB_TAG('N','A','U',' ')},	/* Nauru -> Nauruan */ | 
|---|
| 662 | /*{"nag",	HB_TAG('N','A','G',' ')},*/	/* Naga Pidgin -> Naga-Assamese */ | 
|---|
| 663 | /*{"nah",	HB_TAG('N','A','H',' ')},*/	/* Nahuatl [family] */ | 
|---|
| 664 | { "nan",	HB_TAG('Z','H','S',' ')},	/* Min Nan Chinese -> Chinese Simplified */ | 
|---|
| 665 | /*{"nap",	HB_TAG('N','A','P',' ')},*/	/* Neapolitan */ | 
|---|
| 666 | { "nb",	HB_TAG('N','O','R',' ')},	/* Norwegian Bokmål -> Norwegian */ | 
|---|
| 667 | { "nd",	HB_TAG('N','D','B',' ')},	/* North Ndebele -> Ndebele */ | 
|---|
| 668 | /*{"ndc",	HB_TAG('N','D','C',' ')},*/	/* Ndau */ | 
|---|
| 669 | /*{"nds",	HB_TAG('N','D','S',' ')},*/	/* Low Saxon */ | 
|---|
| 670 | { "ne",	HB_TAG('N','E','P',' ')},	/* Nepali [macrolanguage] */ | 
|---|
| 671 | /*{"new",	HB_TAG('N','E','W',' ')},*/	/* Newari */ | 
|---|
| 672 | { "ng",	HB_TAG('N','D','G',' ')},	/* Ndonga */ | 
|---|
| 673 | /*{"nga",	HB_TAG('N','G','A',' ')},*/	/* Ngbaka */ | 
|---|
| 674 | { "ngl",	HB_TAG('L','M','W',' ')},	/* Lomwe */ | 
|---|
| 675 | { "ngo",	HB_TAG('S','X','T',' ')},	/* Ngoni -> Sutu */ | 
|---|
| 676 | { "nhd",	HB_TAG('G','U','A',' ')},	/* Chiripá -> Guarani */ | 
|---|
| 677 | { "niq",	HB_TAG('K','A','L',' ')},	/* Nandi -> Kalenjin */ | 
|---|
| 678 | /*{"niu",	HB_TAG('N','I','U',' ')},*/	/* Niuean */ | 
|---|
| 679 | { "niv",	HB_TAG('G','I','L',' ')},	/* Gilyak */ | 
|---|
| 680 | { "njz",	HB_TAG('N','I','S',' ')},	/* Nyishi -> Nisi */ | 
|---|
| 681 | { "nl",	HB_TAG('N','L','D',' ')},	/* Dutch */ | 
|---|
| 682 | { "nle",	HB_TAG('L','U','H',' ')},	/* East Nyala -> Luyia */ | 
|---|
| 683 | { "nn",	HB_TAG('N','Y','N',' ')},	/* Norwegian Nynorsk (Nynorsk, Norwegian) */ | 
|---|
| 684 | { "no",	HB_TAG('N','O','R',' ')},	/* Norwegian [macrolanguage] */ | 
|---|
| 685 | { "nod",	HB_TAG('N','T','A',' ')},	/* Northern Thai -> Northern Tai */ | 
|---|
| 686 | /*{"noe",	HB_TAG('N','O','E',' ')},*/	/* Nimadi */ | 
|---|
| 687 | /*{"nog",	HB_TAG('N','O','G',' ')},*/	/* Nogai */ | 
|---|
| 688 | /*{"nov",	HB_TAG('N','O','V',' ')},*/	/* Novial */ | 
|---|
| 689 | { "npi",	HB_TAG('N','E','P',' ')},	/* Nepali */ | 
|---|
| 690 | { "nqo",	HB_TAG('N','K','O',' ')},	/* N’Ko */ | 
|---|
| 691 | { "nr",	HB_TAG('N','D','B',' ')},	/* South Ndebele -> Ndebele */ | 
|---|
| 692 | { "nsk",	HB_TAG('N','A','S',' ')},	/* Naskapi */ | 
|---|
| 693 | /*{"nso",	HB_TAG('N','S','O',' ')},*/	/* Pedi -> Sotho, Northern */ | 
|---|
| 694 | { "nv",	HB_TAG('N','A','V',' ')},	/* Navajo */ | 
|---|
| 695 | { "nv",	HB_TAG('A','T','H',' ')},	/* Navajo -> Athapaskan */ | 
|---|
| 696 | { "ny",	HB_TAG('C','H','I',' ')},	/* Chichewa (Chewa, Nyanja) */ | 
|---|
| 697 | { "nyd",	HB_TAG('L','U','H',' ')},	/* Nyore -> Luyia */ | 
|---|
| 698 | /*{"nym",	HB_TAG('N','Y','M',' ')},*/	/* Nyamwezi */ | 
|---|
| 699 | { "nyn",	HB_TAG('N','K','L',' ')},	/* Nyankole */ | 
|---|
| 700 | /*{"nza",	HB_TAG('N','Z','A',' ')},*/	/* Tigon Mbembe -> Mbembe Tigon */ | 
|---|
| 701 | { "oc",	HB_TAG('O','C','I',' ')},	/* Occitan (post 1500) */ | 
|---|
| 702 | { "oj",	HB_TAG('O','J','B',' ')},	/* Ojibwa [macrolanguage] -> Ojibway */ | 
|---|
| 703 | /*{"ojb",	HB_TAG('O','J','B',' ')},*/	/* Northwestern Ojibwa -> Ojibway */ | 
|---|
| 704 | { "ojc",	HB_TAG('O','J','B',' ')},	/* Central Ojibwa -> Ojibway */ | 
|---|
| 705 | { "ojg",	HB_TAG('O','J','B',' ')},	/* Eastern Ojibwa -> Ojibway */ | 
|---|
| 706 | { "ojs",	HB_TAG('O','C','R',' ')},	/* Severn Ojibwa -> Oji-Cree */ | 
|---|
| 707 | { "ojw",	HB_TAG('O','J','B',' ')},	/* Western Ojibwa -> Ojibway */ | 
|---|
| 708 | { "oki",	HB_TAG('K','A','L',' ')},	/* Okiek -> Kalenjin */ | 
|---|
| 709 | { "okm",	HB_TAG('K','O','H',' ')},	/* Middle Korean (10th-16th cent.) -> Korean Old Hangul */ | 
|---|
| 710 | { "om",	HB_TAG('O','R','O',' ')},	/* Oromo [macrolanguage] */ | 
|---|
| 711 | { "or",	HB_TAG('O','R','I',' ')},	/* Odia (formerly Oriya) [macrolanguage] */ | 
|---|
| 712 | { "orc",	HB_TAG('O','R','O',' ')},	/* Orma -> Oromo */ | 
|---|
| 713 | { "orn",	HB_TAG('M','L','Y',' ')},	/* Orang Kanaq -> Malay */ | 
|---|
| 714 | { "ors",	HB_TAG('M','L','Y',' ')},	/* Orang Seletar -> Malay */ | 
|---|
| 715 | { "ory",	HB_TAG('O','R','I',' ')},	/* Odia (formerly Oriya) */ | 
|---|
| 716 | { "os",	HB_TAG('O','S','S',' ')},	/* Ossetian */ | 
|---|
| 717 | { "otw",	HB_TAG('O','J','B',' ')},	/* Ottawa -> Ojibway */ | 
|---|
| 718 | { "pa",	HB_TAG('P','A','N',' ')},	/* Punjabi */ | 
|---|
| 719 | /*{"pag",	HB_TAG('P','A','G',' ')},*/	/* Pangasinan */ | 
|---|
| 720 | /*{"pam",	HB_TAG('P','A','M',' ')},*/	/* Pampanga -> Pampangan */ | 
|---|
| 721 | { "pap",	HB_TAG('P','A','P','0')},	/* Papiamento -> Papiamentu */ | 
|---|
| 722 | /*{"pau",	HB_TAG('P','A','U',' ')},*/	/* Palauan */ | 
|---|
| 723 | { "pbt",	HB_TAG('P','A','S',' ')},	/* Southern Pashto -> Pashto */ | 
|---|
| 724 | { "pbu",	HB_TAG('P','A','S',' ')},	/* Northern Pashto -> Pashto */ | 
|---|
| 725 | /*{"pcc",	HB_TAG('P','C','C',' ')},*/	/* Bouyei */ | 
|---|
| 726 | /*{"pcd",	HB_TAG('P','C','D',' ')},*/	/* Picard */ | 
|---|
| 727 | { "pce",	HB_TAG('P','L','G',' ')},	/* Ruching Palaung -> Palaung */ | 
|---|
| 728 | { "pck",	HB_TAG('Q','I','N',' ')},	/* Paite Chin -> Chin */ | 
|---|
| 729 | /*{"pdc",	HB_TAG('P','D','C',' ')},*/	/* Pennsylvania German */ | 
|---|
| 730 | { "pel",	HB_TAG('M','L','Y',' ')},	/* Pekal -> Malay */ | 
|---|
| 731 | { "pes",	HB_TAG('F','A','R',' ')},	/* Iranian Persian -> Persian */ | 
|---|
| 732 | { "pga",	HB_TAG('A','R','A',' ')},	/* Sudanese Creole Arabic -> Arabic */ | 
|---|
| 733 | /*{"phk",	HB_TAG('P','H','K',' ')},*/	/* Phake */ | 
|---|
| 734 | { "pi",	HB_TAG('P','A','L',' ')},	/* Pali */ | 
|---|
| 735 | /*{"pih",	HB_TAG('P','I','H',' ')},*/	/* Pitcairn-Norfolk -> Norfolk */ | 
|---|
| 736 | { "pko",	HB_TAG('K','A','L',' ')},	/* Pökoot -> Kalenjin */ | 
|---|
| 737 | { "pl",	HB_TAG('P','L','K',' ')},	/* Polish */ | 
|---|
| 738 | { "pll",	HB_TAG('P','L','G',' ')},	/* Shwe Palaung -> Palaung */ | 
|---|
| 739 | { "plp",	HB_TAG('P','A','P',' ')},	/* Palpa */ | 
|---|
| 740 | { "plt",	HB_TAG('M','L','G',' ')},	/* Plateau Malagasy -> Malagasy */ | 
|---|
| 741 | /*{"pms",	HB_TAG('P','M','S',' ')},*/	/* Piemontese */ | 
|---|
| 742 | /*{"pnb",	HB_TAG('P','N','B',' ')},*/	/* Western Panjabi */ | 
|---|
| 743 | /*{"poh",	HB_TAG('P','O','H',' ')},*/	/* Poqomchi' -> Pocomchi */ | 
|---|
| 744 | /*{"pon",	HB_TAG('P','O','N',' ')},*/	/* Pohnpeian */ | 
|---|
| 745 | { "ppa",	HB_TAG('B','A','G',' ')},	/* Pao (retired code) -> Baghelkhandi */ | 
|---|
| 746 | /*{"pro",	HB_TAG('P','R','O',' ')},*/	/* Old Provençal (to 1500) -> Provençal / Old Provençal */ | 
|---|
| 747 | { "prs",	HB_TAG('D','R','I',' ')},	/* Dari */ | 
|---|
| 748 | { "ps",	HB_TAG('P','A','S',' ')},	/* Pashto [macrolanguage] */ | 
|---|
| 749 | { "pse",	HB_TAG('M','L','Y',' ')},	/* Central Malay -> Malay */ | 
|---|
| 750 | { "pst",	HB_TAG('P','A','S',' ')},	/* Central Pashto -> Pashto */ | 
|---|
| 751 | { "pt",	HB_TAG('P','T','G',' ')},	/* Portuguese */ | 
|---|
| 752 | /*{"pwo",	HB_TAG('P','W','O',' ')},*/	/* Pwo Western Karen -> Western Pwo Karen */ | 
|---|
| 753 | { "qu",	HB_TAG('Q','U','Z',' ')},	/* Quechua [macrolanguage] */ | 
|---|
| 754 | { "qub",	HB_TAG('Q','W','H',' ')},	/* Huallaga Huánuco Quechua -> Quechua (Peru) */ | 
|---|
| 755 | /*{"quc",	HB_TAG('Q','U','C',' ')},*/	/* K’iche’ */ | 
|---|
| 756 | { "qud",	HB_TAG('Q','V','I',' ')},	/* Calderón Highland Quichua -> Quechua (Ecuador) */ | 
|---|
| 757 | { "quf",	HB_TAG('Q','U','Z',' ')},	/* Lambayeque Quechua -> Quechua */ | 
|---|
| 758 | { "qug",	HB_TAG('Q','V','I',' ')},	/* Chimborazo Highland Quichua -> Quechua (Ecuador) */ | 
|---|
| 759 | /*{"quh",	HB_TAG('Q','U','H',' ')},*/	/* South Bolivian Quechua -> Quechua (Bolivia) */ | 
|---|
| 760 | { "quk",	HB_TAG('Q','U','Z',' ')},	/* Chachapoyas Quechua -> Quechua */ | 
|---|
| 761 | { "qul",	HB_TAG('Q','U','Z',' ')},	/* North Bolivian Quechua -> Quechua */ | 
|---|
| 762 | { "qup",	HB_TAG('Q','V','I',' ')},	/* Southern Pastaza Quechua -> Quechua (Ecuador) */ | 
|---|
| 763 | { "qur",	HB_TAG('Q','W','H',' ')},	/* Yanahuanca Pasco Quechua -> Quechua (Peru) */ | 
|---|
| 764 | { "qus",	HB_TAG('Q','U','H',' ')},	/* Santiago del Estero Quichua -> Quechua (Bolivia) */ | 
|---|
| 765 | { "quw",	HB_TAG('Q','V','I',' ')},	/* Tena Lowland Quichua -> Quechua (Ecuador) */ | 
|---|
| 766 | { "qux",	HB_TAG('Q','W','H',' ')},	/* Yauyos Quechua -> Quechua (Peru) */ | 
|---|
| 767 | { "quy",	HB_TAG('Q','U','Z',' ')},	/* Ayacucho Quechua -> Quechua */ | 
|---|
| 768 | /*{"quz",	HB_TAG('Q','U','Z',' ')},*/	/* Cusco Quechua -> Quechua */ | 
|---|
| 769 | { "qva",	HB_TAG('Q','W','H',' ')},	/* Ambo-Pasco Quechua -> Quechua (Peru) */ | 
|---|
| 770 | { "qvc",	HB_TAG('Q','U','Z',' ')},	/* Cajamarca Quechua -> Quechua */ | 
|---|
| 771 | { "qve",	HB_TAG('Q','U','Z',' ')},	/* Eastern Apurímac Quechua -> Quechua */ | 
|---|
| 772 | { "qvh",	HB_TAG('Q','W','H',' ')},	/* Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua (Peru) */ | 
|---|
| 773 | /*{"qvi",	HB_TAG('Q','V','I',' ')},*/	/* Imbabura Highland Quichua -> Quechua (Ecuador) */ | 
|---|
| 774 | { "qvj",	HB_TAG('Q','V','I',' ')},	/* Loja Highland Quichua -> Quechua (Ecuador) */ | 
|---|
| 775 | { "qvl",	HB_TAG('Q','W','H',' ')},	/* Cajatambo North Lima Quechua -> Quechua (Peru) */ | 
|---|
| 776 | { "qvm",	HB_TAG('Q','W','H',' ')},	/* Margos-Yarowilca-Lauricocha Quechua -> Quechua (Peru) */ | 
|---|
| 777 | { "qvn",	HB_TAG('Q','W','H',' ')},	/* North Junín Quechua -> Quechua (Peru) */ | 
|---|
| 778 | { "qvo",	HB_TAG('Q','V','I',' ')},	/* Napo Lowland Quechua -> Quechua (Ecuador) */ | 
|---|
| 779 | { "qvp",	HB_TAG('Q','W','H',' ')},	/* Pacaraos Quechua -> Quechua (Peru) */ | 
|---|
| 780 | { "qvs",	HB_TAG('Q','U','Z',' ')},	/* San Martín Quechua -> Quechua */ | 
|---|
| 781 | { "qvw",	HB_TAG('Q','W','H',' ')},	/* Huaylla Wanca Quechua -> Quechua (Peru) */ | 
|---|
| 782 | { "qvz",	HB_TAG('Q','V','I',' ')},	/* Northern Pastaza Quichua -> Quechua (Ecuador) */ | 
|---|
| 783 | { "qwa",	HB_TAG('Q','W','H',' ')},	/* Corongo Ancash Quechua -> Quechua (Peru) */ | 
|---|
| 784 | { "qwc",	HB_TAG('Q','U','Z',' ')},	/* Classical Quechua -> Quechua */ | 
|---|
| 785 | /*{"qwh",	HB_TAG('Q','W','H',' ')},*/	/* Huaylas Ancash Quechua -> Quechua (Peru) */ | 
|---|
| 786 | { "qws",	HB_TAG('Q','W','H',' ')},	/* Sihuas Ancash Quechua -> Quechua (Peru) */ | 
|---|
| 787 | { "qxa",	HB_TAG('Q','W','H',' ')},	/* Chiquián Ancash Quechua -> Quechua (Peru) */ | 
|---|
| 788 | { "qxc",	HB_TAG('Q','W','H',' ')},	/* Chincha Quechua -> Quechua (Peru) */ | 
|---|
| 789 | { "qxh",	HB_TAG('Q','W','H',' ')},	/* Panao Huánuco Quechua -> Quechua (Peru) */ | 
|---|
| 790 | { "qxl",	HB_TAG('Q','V','I',' ')},	/* Salasaca Highland Quichua -> Quechua (Ecuador) */ | 
|---|
| 791 | { "qxn",	HB_TAG('Q','W','H',' ')},	/* Northern Conchucos Ancash Quechua -> Quechua (Peru) */ | 
|---|
| 792 | { "qxo",	HB_TAG('Q','W','H',' ')},	/* Southern Conchucos Ancash Quechua -> Quechua (Peru) */ | 
|---|
| 793 | { "qxp",	HB_TAG('Q','U','Z',' ')},	/* Puno Quechua -> Quechua */ | 
|---|
| 794 | { "qxr",	HB_TAG('Q','V','I',' ')},	/* Cañar Highland Quichua -> Quechua (Ecuador) */ | 
|---|
| 795 | { "qxt",	HB_TAG('Q','W','H',' ')},	/* Santa Ana de Tusi Pasco Quechua -> Quechua (Peru) */ | 
|---|
| 796 | { "qxu",	HB_TAG('Q','U','Z',' ')},	/* Arequipa-La Unión Quechua -> Quechua */ | 
|---|
| 797 | { "qxw",	HB_TAG('Q','W','H',' ')},	/* Jauja Wanca Quechua -> Quechua (Peru) */ | 
|---|
| 798 | { "rag",	HB_TAG('L','U','H',' ')},	/* Logooli -> Luyia */ | 
|---|
| 799 | /*{"raj",	HB_TAG('R','A','J',' ')},*/	/* Rajasthani [macrolanguage] */ | 
|---|
| 800 | /*{"rar",	HB_TAG('R','A','R',' ')},*/	/* Rarotongan */ | 
|---|
| 801 | { "rbb",	HB_TAG('P','L','G',' ')},	/* Rumai Palaung -> Palaung */ | 
|---|
| 802 | { "rbl",	HB_TAG('B','I','K',' ')},	/* Miraya Bikol -> Bikol */ | 
|---|
| 803 | /*{"rej",	HB_TAG('R','E','J',' ')},*/	/* Rejang */ | 
|---|
| 804 | /*{"ria",	HB_TAG('R','I','A',' ')},*/	/* Riang (India) */ | 
|---|
| 805 | /*{"rif",	HB_TAG('R','I','F',' ')},*/	/* Tarifit */ | 
|---|
| 806 | /*{"rit",	HB_TAG('R','I','T',' ')},*/	/* Ritarungo */ | 
|---|
| 807 | { "rki",	HB_TAG('A','R','K',' ')},	/* Rakhine */ | 
|---|
| 808 | /*{"rkw",	HB_TAG('R','K','W',' ')},*/	/* Arakwal */ | 
|---|
| 809 | { "rm",	HB_TAG('R','M','S',' ')},	/* Romansh */ | 
|---|
| 810 | { "rmc",	HB_TAG('R','O','Y',' ')},	/* Carpathian Romani -> Romany */ | 
|---|
| 811 | { "rmf",	HB_TAG('R','O','Y',' ')},	/* Kalo Finnish Romani -> Romany */ | 
|---|
| 812 | { "rml",	HB_TAG('R','O','Y',' ')},	/* Baltic Romani -> Romany */ | 
|---|
| 813 | { "rmn",	HB_TAG('R','O','Y',' ')},	/* Balkan Romani -> Romany */ | 
|---|
| 814 | { "rmo",	HB_TAG('R','O','Y',' ')},	/* Sinte Romani -> Romany */ | 
|---|
| 815 | { "rmw",	HB_TAG('R','O','Y',' ')},	/* Welsh Romani -> Romany */ | 
|---|
| 816 | /*{"rmy",	HB_TAG('R','M','Y',' ')},*/	/* Vlax Romani */ | 
|---|
| 817 | { "rmz",	HB_TAG('A','R','K',' ')},	/* Marma -> Rakhine */ | 
|---|
| 818 | { "rn",	HB_TAG('R','U','N',' ')},	/* Rundi */ | 
|---|
| 819 | { "rnl",	HB_TAG('H','A','L',' ')},	/* Ranglong -> Halam (Falam Chin) */ | 
|---|
| 820 | { "ro",	HB_TAG('R','O','M',' ')},	/* Romanian */ | 
|---|
| 821 | { "rom",	HB_TAG('R','O','Y',' ')},	/* Romany [macrolanguage] */ | 
|---|
| 822 | /*{"rtm",	HB_TAG('R','T','M',' ')},*/	/* Rotuman */ | 
|---|
| 823 | { "ru",	HB_TAG('R','U','S',' ')},	/* Russian */ | 
|---|
| 824 | { "rue",	HB_TAG('R','S','Y',' ')},	/* Rusyn */ | 
|---|
| 825 | /*{"rup",	HB_TAG('R','U','P',' ')},*/	/* Aromanian */ | 
|---|
| 826 | { "rw",	HB_TAG('R','U','A',' ')},	/* Kinyarwanda */ | 
|---|
| 827 | { "rwr",	HB_TAG('M','A','W',' ')},	/* Marwari (India) */ | 
|---|
| 828 | { "sa",	HB_TAG('S','A','N',' ')},	/* Sanskrit */ | 
|---|
| 829 | { "sah",	HB_TAG('Y','A','K',' ')},	/* Yakut -> Sakha */ | 
|---|
| 830 | { "sam",	HB_TAG('P','A','A',' ')},	/* Samaritan Aramaic -> Palestinian Aramaic */ | 
|---|
| 831 | /*{"sas",	HB_TAG('S','A','S',' ')},*/	/* Sasak */ | 
|---|
| 832 | /*{"sat",	HB_TAG('S','A','T',' ')},*/	/* Santali */ | 
|---|
| 833 | { "sc",	HB_TAG('S','R','D',' ')},	/* Sardinian [macrolanguage] */ | 
|---|
| 834 | { "sck",	HB_TAG('S','A','D',' ')},	/* Sadri */ | 
|---|
| 835 | /*{"scn",	HB_TAG('S','C','N',' ')},*/	/* Sicilian */ | 
|---|
| 836 | /*{"sco",	HB_TAG('S','C','O',' ')},*/	/* Scots */ | 
|---|
| 837 | { "scs",	HB_TAG('S','C','S',' ')},	/* North Slavey */ | 
|---|
| 838 | { "scs",	HB_TAG('S','L','A',' ')},	/* North Slavey -> Slavey */ | 
|---|
| 839 | { "scs",	HB_TAG('A','T','H',' ')},	/* North Slavey -> Athapaskan */ | 
|---|
| 840 | { "sd",	HB_TAG('S','N','D',' ')},	/* Sindhi */ | 
|---|
| 841 | { "sdc",	HB_TAG('S','R','D',' ')},	/* Sassarese Sardinian -> Sardinian */ | 
|---|
| 842 | { "sdh",	HB_TAG('K','U','R',' ')},	/* Southern Kurdish -> Kurdish */ | 
|---|
| 843 | { "sdn",	HB_TAG('S','R','D',' ')},	/* Gallurese Sardinian -> Sardinian */ | 
|---|
| 844 | { "se",	HB_TAG('N','S','M',' ')},	/* Northern Sami */ | 
|---|
| 845 | { "seh",	HB_TAG('S','N','A',' ')},	/* Sena */ | 
|---|
| 846 | { "sek",	HB_TAG('A','T','H',' ')},	/* Sekani -> Athapaskan */ | 
|---|
| 847 | /*{"sel",	HB_TAG('S','E','L',' ')},*/	/* Selkup */ | 
|---|
| 848 | { "sez",	HB_TAG('Q','I','N',' ')},	/* Senthang Chin -> Chin */ | 
|---|
| 849 | { "sfm",	HB_TAG('H','M','N',' ')},	/* Small Flowery Miao -> Hmong */ | 
|---|
| 850 | { "sg",	HB_TAG('S','G','O',' ')},	/* Sango */ | 
|---|
| 851 | /*{"sga",	HB_TAG('S','G','A',' ')},*/	/* Old Irish (to 900) */ | 
|---|
| 852 | { "sgc",	HB_TAG('K','A','L',' ')},	/* Kipsigis -> Kalenjin */ | 
|---|
| 853 | /*{"sgs",	HB_TAG('S','G','S',' ')},*/	/* Samogitian */ | 
|---|
| 854 | { "sgw",	HB_TAG('C','H','G',' ')},	/* Sebat Bet Gurage -> Chaha Gurage */ | 
|---|
| 855 | { "sgw",	HB_TAG('S','G','W',' ')},	/* Sebat Bet Gurage -> Chaha Gurage (SIL fonts) */ | 
|---|
| 856 | /*{"shi",	HB_TAG('S','H','I',' ')},*/	/* Tachelhit */ | 
|---|
| 857 | /*{"shn",	HB_TAG('S','H','N',' ')},*/	/* Shan */ | 
|---|
| 858 | { "shu",	HB_TAG('A','R','A',' ')},	/* Chadian Arabic -> Arabic */ | 
|---|
| 859 | { "si",	HB_TAG('S','N','H',' ')},	/* Sinhala (Sinhalese) */ | 
|---|
| 860 | /*{"sid",	HB_TAG('S','I','D',' ')},*/	/* Sidamo */ | 
|---|
| 861 | { "sjd",	HB_TAG('K','S','M',' ')},	/* Kildin Sami */ | 
|---|
| 862 | { "sjo",	HB_TAG('S','I','B',' ')},	/* Xibe -> Sibe */ | 
|---|
| 863 | { "sk",	HB_TAG('S','K','Y',' ')},	/* Slovak */ | 
|---|
| 864 | { "skg",	HB_TAG('M','L','G',' ')},	/* Sakalava Malagasy -> Malagasy */ | 
|---|
| 865 | { "skr",	HB_TAG('S','R','K',' ')},	/* Saraiki */ | 
|---|
| 866 | { "sl",	HB_TAG('S','L','V',' ')},	/* Slovenian */ | 
|---|
| 867 | { "sm",	HB_TAG('S','M','O',' ')},	/* Samoan */ | 
|---|
| 868 | { "sma",	HB_TAG('S','S','M',' ')},	/* Southern Sami */ | 
|---|
| 869 | { "smj",	HB_TAG('L','S','M',' ')},	/* Lule Sami */ | 
|---|
| 870 | { "smn",	HB_TAG('I','S','M',' ')},	/* Inari Sami */ | 
|---|
| 871 | { "sms",	HB_TAG('S','K','S',' ')},	/* Skolt Sami */ | 
|---|
| 872 | { "sn",	HB_TAG('S','N','A','0')},	/* Shona */ | 
|---|
| 873 | /*{"snk",	HB_TAG('S','N','K',' ')},*/	/* Soninke */ | 
|---|
| 874 | { "so",	HB_TAG('S','M','L',' ')},	/* Somali */ | 
|---|
| 875 | /*{"sop",	HB_TAG('S','O','P',' ')},*/	/* Songe */ | 
|---|
| 876 | { "spv",	HB_TAG('O','R','I',' ')},	/* Sambalpuri -> Odia (formerly Oriya) */ | 
|---|
| 877 | { "spy",	HB_TAG('K','A','L',' ')},	/* Sabaot -> Kalenjin */ | 
|---|
| 878 | { "sq",	HB_TAG('S','Q','I',' ')},	/* Albanian [macrolanguage] */ | 
|---|
| 879 | { "sr",	HB_TAG('S','R','B',' ')},	/* Serbian */ | 
|---|
| 880 | { "src",	HB_TAG('S','R','D',' ')},	/* Logudorese Sardinian -> Sardinian */ | 
|---|
| 881 | { "sro",	HB_TAG('S','R','D',' ')},	/* Campidanese Sardinian -> Sardinian */ | 
|---|
| 882 | /*{"srr",	HB_TAG('S','R','R',' ')},*/	/* Serer */ | 
|---|
| 883 | { "srs",	HB_TAG('A','T','H',' ')},	/* Sarsi -> Athapaskan */ | 
|---|
| 884 | { "ss",	HB_TAG('S','W','Z',' ')},	/* Swati */ | 
|---|
| 885 | { "ssh",	HB_TAG('A','R','A',' ')},	/* Shihhi Arabic -> Arabic */ | 
|---|
| 886 | { "st",	HB_TAG('S','O','T',' ')},	/* Southern Sotho -> Sotho, Southern */ | 
|---|
| 887 | /*{"stq",	HB_TAG('S','T','Q',' ')},*/	/* Saterfriesisch -> Saterland Frisian */ | 
|---|
| 888 | { "stv",	HB_TAG('S','I','G',' ')},	/* Silt'e -> Silte Gurage */ | 
|---|
| 889 | { "su",	HB_TAG('S','U','N',' ')},	/* Sundanese */ | 
|---|
| 890 | /*{"suk",	HB_TAG('S','U','K',' ')},*/	/* Sukuma */ | 
|---|
| 891 | { "suq",	HB_TAG('S','U','R',' ')},	/* Suri */ | 
|---|
| 892 | { "sv",	HB_TAG('S','V','E',' ')},	/* Swedish */ | 
|---|
| 893 | /*{"sva",	HB_TAG('S','V','A',' ')},*/	/* Svan */ | 
|---|
| 894 | { "sw",	HB_TAG('S','W','K',' ')},	/* Swahili [macrolanguage] */ | 
|---|
| 895 | { "swb",	HB_TAG('C','M','R',' ')},	/* Maore Comorian -> Comorian */ | 
|---|
| 896 | { "swc",	HB_TAG('S','W','K',' ')},	/* Congo Swahili -> Swahili */ | 
|---|
| 897 | { "swh",	HB_TAG('S','W','K',' ')},	/* Swahili */ | 
|---|
| 898 | { "swv",	HB_TAG('M','A','W',' ')},	/* Shekhawati -> Marwari */ | 
|---|
| 899 | /*{"sxu",	HB_TAG('S','X','U',' ')},*/	/* Upper Saxon */ | 
|---|
| 900 | { "syc",	HB_TAG('S','Y','R',' ')},	/* Classical Syriac -> Syriac */ | 
|---|
| 901 | /*{"syl",	HB_TAG('S','Y','L',' ')},*/	/* Sylheti */ | 
|---|
| 902 | /*{"syr",	HB_TAG('S','Y','R',' ')},*/	/* Syriac [macrolanguage] */ | 
|---|
| 903 | /*{"szl",	HB_TAG('S','Z','L',' ')},*/	/* Silesian */ | 
|---|
| 904 | { "ta",	HB_TAG('T','A','M',' ')},	/* Tamil */ | 
|---|
| 905 | { "taa",	HB_TAG('A','T','H',' ')},	/* Lower Tanana -> Athapaskan */ | 
|---|
| 906 | /*{"tab",	HB_TAG('T','A','B',' ')},*/	/* Tabassaran -> Tabasaran */ | 
|---|
| 907 | { "taq",	HB_TAG('T','M','H',' ')},	/* Tamasheq -> Tamashek */ | 
|---|
| 908 | { "tau",	HB_TAG('A','T','H',' ')},	/* Upper Tanana -> Athapaskan */ | 
|---|
| 909 | { "tcb",	HB_TAG('A','T','H',' ')},	/* Tanacross -> Athapaskan */ | 
|---|
| 910 | { "tce",	HB_TAG('A','T','H',' ')},	/* Southern Tutchone -> Athapaskan */ | 
|---|
| 911 | { "tcp",	HB_TAG('Q','I','N',' ')},	/* Tawr Chin -> Chin */ | 
|---|
| 912 | { "tcy",	HB_TAG('T','U','L',' ')},	/* Tulu -> Tumbuka */ | 
|---|
| 913 | { "tcz",	HB_TAG('Q','I','N',' ')},	/* Thado Chin -> Chin */ | 
|---|
| 914 | /*{"tdd",	HB_TAG('T','D','D',' ')},*/	/* Tai Nüa -> Dehong Dai */ | 
|---|
| 915 | { "tdx",	HB_TAG('M','L','G',' ')},	/* Tandroy-Mahafaly Malagasy -> Malagasy */ | 
|---|
| 916 | { "te",	HB_TAG('T','E','L',' ')},	/* Telugu */ | 
|---|
| 917 | { "tec",	HB_TAG('K','A','L',' ')},	/* Terik -> Kalenjin */ | 
|---|
| 918 | { "tem",	HB_TAG('T','M','N',' ')},	/* Timne -> Temne */ | 
|---|
| 919 | /*{"tet",	HB_TAG('T','E','T',' ')},*/	/* Tetum */ | 
|---|
| 920 | { "tfn",	HB_TAG('A','T','H',' ')},	/* Tanaina -> Athapaskan */ | 
|---|
| 921 | { "tg",	HB_TAG('T','A','J',' ')},	/* Tajik -> Tajiki */ | 
|---|
| 922 | { "tgj",	HB_TAG('N','I','S',' ')},	/* Tagin -> Nisi */ | 
|---|
| 923 | { "tgx",	HB_TAG('A','T','H',' ')},	/* Tagish -> Athapaskan */ | 
|---|
| 924 | { "th",	HB_TAG('T','H','A',' ')},	/* Thai */ | 
|---|
| 925 | { "tht",	HB_TAG('A','T','H',' ')},	/* Tahltan -> Athapaskan */ | 
|---|
| 926 | { "thv",	HB_TAG('T','M','H',' ')},	/* Tahaggart Tamahaq -> Tamashek */ | 
|---|
| 927 | { "thz",	HB_TAG('T','M','H',' ')},	/* Tayart Tamajeq -> Tamashek */ | 
|---|
| 928 | { "ti",	HB_TAG('T','G','Y',' ')},	/* Tigrinya */ | 
|---|
| 929 | { "tig",	HB_TAG('T','G','R',' ')},	/* Tigre */ | 
|---|
| 930 | /*{"tiv",	HB_TAG('T','I','V',' ')},*/	/* Tiv */ | 
|---|
| 931 | { "tk",	HB_TAG('T','K','M',' ')},	/* Turkmen */ | 
|---|
| 932 | { "tkg",	HB_TAG('M','L','G',' ')},	/* Tesaka Malagasy -> Malagasy */ | 
|---|
| 933 | { "tl",	HB_TAG('T','G','L',' ')},	/* Tagalog */ | 
|---|
| 934 | /*{"tmh",	HB_TAG('T','M','H',' ')},*/	/* Tamashek [macrolanguage] */ | 
|---|
| 935 | { "tmw",	HB_TAG('M','L','Y',' ')},	/* Temuan -> Malay */ | 
|---|
| 936 | { "tn",	HB_TAG('T','N','A',' ')},	/* Tswana */ | 
|---|
| 937 | { "tnf",	HB_TAG('D','R','I',' ')},	/* Tangshewi (retired code) -> Dari */ | 
|---|
| 938 | { "to",	HB_TAG('T','G','N',' ')},	/* Tonga (Tonga Islands) -> Tongan */ | 
|---|
| 939 | { "tod",	HB_TAG('T','O','D','0')},	/* Toma */ | 
|---|
| 940 | { "toi",	HB_TAG('T','N','G',' ')},	/* Tonga (Zambia) */ | 
|---|
| 941 | { "tol",	HB_TAG('A','T','H',' ')},	/* Tolowa -> Athapaskan */ | 
|---|
| 942 | /*{"tpi",	HB_TAG('T','P','I',' ')},*/	/* Tok Pisin */ | 
|---|
| 943 | { "tr",	HB_TAG('T','R','K',' ')},	/* Turkish */ | 
|---|
| 944 | { "tru",	HB_TAG('T','U','A',' ')},	/* Turoyo -> Turoyo Aramaic */ | 
|---|
| 945 | { "tru",	HB_TAG('S','Y','R',' ')},	/* Turoyo -> Syriac */ | 
|---|
| 946 | { "ts",	HB_TAG('T','S','G',' ')},	/* Tsonga */ | 
|---|
| 947 | /*{"tsj",	HB_TAG('T','S','J',' ')},*/	/* Tshangla */ | 
|---|
| 948 | { "tt",	HB_TAG('T','A','T',' ')},	/* Tatar */ | 
|---|
| 949 | { "ttm",	HB_TAG('A','T','H',' ')},	/* Northern Tutchone -> Athapaskan */ | 
|---|
| 950 | { "ttq",	HB_TAG('T','M','H',' ')},	/* Tawallammat Tamajaq -> Tamashek */ | 
|---|
| 951 | /*{"tum",	HB_TAG('T','U','M',' ')},*/	/* Tumbuka -> Tulu */ | 
|---|
| 952 | { "tuu",	HB_TAG('A','T','H',' ')},	/* Tututni -> Athapaskan */ | 
|---|
| 953 | { "tuy",	HB_TAG('K','A','L',' ')},	/* Tugen -> Kalenjin */ | 
|---|
| 954 | /*{"tvl",	HB_TAG('T','V','L',' ')},*/	/* Tuvalu */ | 
|---|
| 955 | { "tw",	HB_TAG('T','W','I',' ')},	/* Twi */ | 
|---|
| 956 | { "tw",	HB_TAG('A','K','A',' ')},	/* Twi -> Akan */ | 
|---|
| 957 | { "txc",	HB_TAG('A','T','H',' ')},	/* Tsetsaut -> Athapaskan */ | 
|---|
| 958 | { "txy",	HB_TAG('M','L','G',' ')},	/* Tanosy Malagasy -> Malagasy */ | 
|---|
| 959 | { "ty",	HB_TAG('T','H','T',' ')},	/* Tahitian */ | 
|---|
| 960 | { "tyv",	HB_TAG('T','U','V',' ')},	/* Tuvinian -> Tuvin */ | 
|---|
| 961 | /*{"tyz",	HB_TAG('T','Y','Z',' ')},*/	/* Tày */ | 
|---|
| 962 | /*{"tzm",	HB_TAG('T','Z','M',' ')},*/	/* Central Atlas Tamazight -> Tamazight */ | 
|---|
| 963 | /*{"tzo",	HB_TAG('T','Z','O',' ')},*/	/* Tzotzil */ | 
|---|
| 964 | { "ubl",	HB_TAG('B','I','K',' ')},	/* Buhi'non Bikol -> Bikol */ | 
|---|
| 965 | /*{"udm",	HB_TAG('U','D','M',' ')},*/	/* Udmurt */ | 
|---|
| 966 | { "ug",	HB_TAG('U','Y','G',' ')},	/* Uyghur */ | 
|---|
| 967 | { "uk",	HB_TAG('U','K','R',' ')},	/* Ukrainian */ | 
|---|
| 968 | /*{"umb",	HB_TAG('U','M','B',' ')},*/	/* Umbundu */ | 
|---|
| 969 | { "unr",	HB_TAG('M','U','N',' ')},	/* Mundari */ | 
|---|
| 970 | { "ur",	HB_TAG('U','R','D',' ')},	/* Urdu */ | 
|---|
| 971 | { "urk",	HB_TAG('M','L','Y',' ')},	/* Urak Lawoi' -> Malay */ | 
|---|
| 972 | { "uz",	HB_TAG('U','Z','B',' ')},	/* Uzbek [macrolanguage] */ | 
|---|
| 973 | { "uzn",	HB_TAG('U','Z','B',' ')},	/* Northern Uzbek -> Uzbek */ | 
|---|
| 974 | { "uzs",	HB_TAG('U','Z','B',' ')},	/* Southern Uzbek -> Uzbek */ | 
|---|
| 975 | { "ve",	HB_TAG('V','E','N',' ')},	/* Venda */ | 
|---|
| 976 | /*{"vec",	HB_TAG('V','E','C',' ')},*/	/* Venetian */ | 
|---|
| 977 | { "vi",	HB_TAG('V','I','T',' ')},	/* Vietnamese */ | 
|---|
| 978 | { "vkk",	HB_TAG('M','L','Y',' ')},	/* Kaur -> Malay */ | 
|---|
| 979 | { "vkt",	HB_TAG('M','L','Y',' ')},	/* Tenggarong Kutai Malay -> Malay */ | 
|---|
| 980 | { "vls",	HB_TAG('F','L','E',' ')},	/* Vlaams -> Dutch (Flemish) */ | 
|---|
| 981 | { "vmw",	HB_TAG('M','A','K',' ')},	/* Makhuwa */ | 
|---|
| 982 | { "vo",	HB_TAG('V','O','L',' ')},	/* Volapük */ | 
|---|
| 983 | /*{"vro",	HB_TAG('V','R','O',' ')},*/	/* Võro */ | 
|---|
| 984 | { "wa",	HB_TAG('W','L','N',' ')},	/* Walloon */ | 
|---|
| 985 | /*{"war",	HB_TAG('W','A','R',' ')},*/	/* Waray (Philippines) -> Waray-Waray */ | 
|---|
| 986 | { "wbm",	HB_TAG('W','A',' ',' ')},	/* Wa */ | 
|---|
| 987 | { "wbr",	HB_TAG('W','A','G',' ')},	/* Wagdi */ | 
|---|
| 988 | { "wlc",	HB_TAG('C','M','R',' ')},	/* Mwali Comorian -> Comorian */ | 
|---|
| 989 | { "wle",	HB_TAG('S','I','G',' ')},	/* Wolane -> Silte Gurage */ | 
|---|
| 990 | { "wlk",	HB_TAG('A','T','H',' ')},	/* Wailaki -> Athapaskan */ | 
|---|
| 991 | { "wni",	HB_TAG('C','M','R',' ')},	/* Ndzwani Comorian -> Comorian */ | 
|---|
| 992 | { "wo",	HB_TAG('W','L','F',' ')},	/* Wolof */ | 
|---|
| 993 | { "wry",	HB_TAG('M','A','W',' ')},	/* Merwari -> Marwari */ | 
|---|
| 994 | { "wsg",	HB_TAG('G','O','N',' ')},	/* Adilabad Gondi -> Gondi */ | 
|---|
| 995 | /*{"wtm",	HB_TAG('W','T','M',' ')},*/	/* Mewati */ | 
|---|
| 996 | { "wuu",	HB_TAG('Z','H','S',' ')},	/* Wu Chinese -> Chinese Simplified */ | 
|---|
| 997 | { "xal",	HB_TAG('K','L','M',' ')},	/* Kalmyk */ | 
|---|
| 998 | { "xal",	HB_TAG('T','O','D',' ')},	/* Kalmyk -> Todo */ | 
|---|
| 999 | { "xan",	HB_TAG('S','E','K',' ')},	/* Xamtanga -> Sekota */ | 
|---|
| 1000 | { "xh",	HB_TAG('X','H','S',' ')},	/* Xhosa */ | 
|---|
| 1001 | /*{"xjb",	HB_TAG('X','J','B',' ')},*/	/* Minjungbal -> Minjangbal */ | 
|---|
| 1002 | /*{"xkf",	HB_TAG('X','K','F',' ')},*/	/* Khengkha */ | 
|---|
| 1003 | { "xmm",	HB_TAG('M','L','Y',' ')},	/* Manado Malay -> Malay */ | 
|---|
| 1004 | { "xmv",	HB_TAG('M','L','G',' ')},	/* Antankarana Malagasy -> Malagasy */ | 
|---|
| 1005 | { "xmw",	HB_TAG('M','L','G',' ')},	/* Tsimihety Malagasy -> Malagasy */ | 
|---|
| 1006 | { "xnr",	HB_TAG('D','G','R',' ')},	/* Kangri -> Dogri */ | 
|---|
| 1007 | /*{"xog",	HB_TAG('X','O','G',' ')},*/	/* Soga */ | 
|---|
| 1008 | /*{"xpe",	HB_TAG('X','P','E',' ')},*/	/* Liberia Kpelle -> Kpelle (Liberia) */ | 
|---|
| 1009 | { "xsl",	HB_TAG('S','S','L',' ')},	/* South Slavey */ | 
|---|
| 1010 | { "xsl",	HB_TAG('S','L','A',' ')},	/* South Slavey -> Slavey */ | 
|---|
| 1011 | { "xsl",	HB_TAG('A','T','H',' ')},	/* South Slavey -> Athapaskan */ | 
|---|
| 1012 | { "xst",	HB_TAG('S','I','G',' ')},	/* Silt'e (retired code) -> Silte Gurage */ | 
|---|
| 1013 | { "xwo",	HB_TAG('T','O','D',' ')},	/* Written Oirat -> Todo */ | 
|---|
| 1014 | /*{"yao",	HB_TAG('Y','A','O',' ')},*/	/* Yao */ | 
|---|
| 1015 | /*{"yap",	HB_TAG('Y','A','P',' ')},*/	/* Yapese */ | 
|---|
| 1016 | { "ybd",	HB_TAG('A','R','K',' ')},	/* Yangbye (retired code) -> Rakhine */ | 
|---|
| 1017 | { "ydd",	HB_TAG('J','I','I',' ')},	/* Eastern Yiddish -> Yiddish */ | 
|---|
| 1018 | { "yi",	HB_TAG('J','I','I',' ')},	/* Yiddish [macrolanguage] */ | 
|---|
| 1019 | { "yih",	HB_TAG('J','I','I',' ')},	/* Western Yiddish -> Yiddish */ | 
|---|
| 1020 | { "yo",	HB_TAG('Y','B','A',' ')},	/* Yoruba */ | 
|---|
| 1021 | { "yos",	HB_TAG('Q','I','N',' ')},	/* Yos (retired code) -> Chin */ | 
|---|
| 1022 | { "yrk",	HB_TAG('T','N','E',' ')},	/* Nenets -> Tundra Nenets */ | 
|---|
| 1023 | { "yrk",	HB_TAG('F','N','E',' ')},	/* Nenets -> Forest Nenets */ | 
|---|
| 1024 | { "yue",	HB_TAG('Z','H','H',' ')},	/* Yue Chinese -> Chinese, Hong Kong SAR */ | 
|---|
| 1025 | { "za",	HB_TAG('Z','H','A',' ')},	/* Zhuang [macrolanguage] */ | 
|---|
| 1026 | { "zch",	HB_TAG('Z','H','A',' ')},	/* Central Hongshuihe Zhuang -> Zhuang */ | 
|---|
| 1027 | { "zdj",	HB_TAG('C','M','R',' ')},	/* Ngazidja Comorian -> Comorian */ | 
|---|
| 1028 | /*{"zea",	HB_TAG('Z','E','A',' ')},*/	/* Zeeuws -> Zealandic */ | 
|---|
| 1029 | { "zeh",	HB_TAG('Z','H','A',' ')},	/* Eastern Hongshuihe Zhuang -> Zhuang */ | 
|---|
| 1030 | { "zgb",	HB_TAG('Z','H','A',' ')},	/* Guibei Zhuang -> Zhuang */ | 
|---|
| 1031 | /*{"zgh",	HB_TAG('Z','G','H',' ')},*/	/* Standard Moroccan Tamazight */ | 
|---|
| 1032 | { "zgm",	HB_TAG('Z','H','A',' ')},	/* Minz Zhuang -> Zhuang */ | 
|---|
| 1033 | { "zgn",	HB_TAG('Z','H','A',' ')},	/* Guibian Zhuang -> Zhuang */ | 
|---|
| 1034 | { "zh",	HB_TAG('Z','H','S',' ')},	/* Chinese [macrolanguage] -> Chinese Simplified */ | 
|---|
| 1035 | { "zhd",	HB_TAG('Z','H','A',' ')},	/* Dai Zhuang -> Zhuang */ | 
|---|
| 1036 | { "zhn",	HB_TAG('Z','H','A',' ')},	/* Nong Zhuang -> Zhuang */ | 
|---|
| 1037 | { "zlj",	HB_TAG('Z','H','A',' ')},	/* Liujiang Zhuang -> Zhuang */ | 
|---|
| 1038 | { "zlm",	HB_TAG('M','L','Y',' ')},	/* Malay */ | 
|---|
| 1039 | { "zln",	HB_TAG('Z','H','A',' ')},	/* Lianshan Zhuang -> Zhuang */ | 
|---|
| 1040 | { "zlq",	HB_TAG('Z','H','A',' ')},	/* Liuqian Zhuang -> Zhuang */ | 
|---|
| 1041 | { "zmi",	HB_TAG('M','L','Y',' ')},	/* Negeri Sembilan Malay -> Malay */ | 
|---|
| 1042 | { "zne",	HB_TAG('Z','N','D',' ')},	/* Zande */ | 
|---|
| 1043 | { "zom",	HB_TAG('Q','I','N',' ')},	/* Zou -> Chin */ | 
|---|
| 1044 | { "zqe",	HB_TAG('Z','H','A',' ')},	/* Qiubei Zhuang -> Zhuang */ | 
|---|
| 1045 | { "zsm",	HB_TAG('M','L','Y',' ')},	/* Standard Malay -> Malay */ | 
|---|
| 1046 | { "zu",	HB_TAG('Z','U','L',' ')},	/* Zulu */ | 
|---|
| 1047 | { "zum",	HB_TAG('L','R','C',' ')},	/* Kumzari -> Luri */ | 
|---|
| 1048 | { "zyb",	HB_TAG('Z','H','A',' ')},	/* Yongbei Zhuang -> Zhuang */ | 
|---|
| 1049 | { "zyg",	HB_TAG('Z','H','A',' ')},	/* Yang Zhuang -> Zhuang */ | 
|---|
| 1050 | { "zyj",	HB_TAG('Z','H','A',' ')},	/* Youjiang Zhuang -> Zhuang */ | 
|---|
| 1051 | { "zyn",	HB_TAG('Z','H','A',' ')},	/* Yongnan Zhuang -> Zhuang */ | 
|---|
| 1052 | /*{"zza",	HB_TAG('Z','Z','A',' ')},*/	/* Zazaki [macrolanguage] */ | 
|---|
| 1053 | { "zzj",	HB_TAG('Z','H','A',' ')},	/* Zuojiang Zhuang -> Zhuang */ | 
|---|
| 1054 | }; | 
|---|
| 1055 |  | 
|---|
| 1056 | /** | 
|---|
| 1057 | * hb_ot_tags_from_complex_language: | 
|---|
| 1058 | * @lang_str: a BCP 47 language tag to convert. | 
|---|
| 1059 | * @limit: a pointer to the end of the substring of @lang_str to consider for | 
|---|
| 1060 | * conversion. | 
|---|
| 1061 | * @count: maximum number of language tags to retrieve (IN) and actual number of | 
|---|
| 1062 | * language tags retrieved (OUT). If no tags are retrieved, it is not modified. | 
|---|
| 1063 | * @tags: array of size at least @language_count to store the language tag | 
|---|
| 1064 | * results | 
|---|
| 1065 | * | 
|---|
| 1066 | * Converts a multi-subtag BCP 47 language tag to language tags. | 
|---|
| 1067 | * | 
|---|
| 1068 | * Return value: Whether any language systems were retrieved. | 
|---|
| 1069 | **/ | 
|---|
| 1070 | static bool | 
|---|
| 1071 | hb_ot_tags_from_complex_language (const char   *lang_str, | 
|---|
| 1072 | const char   *limit, | 
|---|
| 1073 | unsigned int *count /* IN/OUT */, | 
|---|
| 1074 | hb_tag_t     *tags /* OUT */) | 
|---|
| 1075 | { | 
|---|
| 1076 | if (subtag_matches (lang_str, limit, "-fonnapa")) | 
|---|
| 1077 | { | 
|---|
| 1078 | /* Undetermined; North American Phonetic Alphabet */ | 
|---|
| 1079 | tags[0] = HB_TAG('A','P','P','H');  /* Phonetic transcription—Americanist conventions */ | 
|---|
| 1080 | *count = 1; | 
|---|
| 1081 | return true; | 
|---|
| 1082 | } | 
|---|
| 1083 | if (subtag_matches (lang_str, limit, "-polyton")) | 
|---|
| 1084 | { | 
|---|
| 1085 | /* Modern Greek (1453-); Polytonic Greek */ | 
|---|
| 1086 | tags[0] = HB_TAG('P','G','R',' ');  /* Polytonic Greek */ | 
|---|
| 1087 | *count = 1; | 
|---|
| 1088 | return true; | 
|---|
| 1089 | } | 
|---|
| 1090 | if (subtag_matches (lang_str, limit, "-provenc")) | 
|---|
| 1091 | { | 
|---|
| 1092 | /* Occitan (post 1500); Provençal */ | 
|---|
| 1093 | tags[0] = HB_TAG('P','R','O',' ');  /* Provençal / Old Provençal */ | 
|---|
| 1094 | *count = 1; | 
|---|
| 1095 | return true; | 
|---|
| 1096 | } | 
|---|
| 1097 | if (subtag_matches (lang_str, limit, "-fonipa")) | 
|---|
| 1098 | { | 
|---|
| 1099 | /* Undetermined; International Phonetic Alphabet */ | 
|---|
| 1100 | tags[0] = HB_TAG('I','P','P','H');  /* Phonetic transcription—IPA conventions */ | 
|---|
| 1101 | *count = 1; | 
|---|
| 1102 | return true; | 
|---|
| 1103 | } | 
|---|
| 1104 | if (subtag_matches (lang_str, limit, "-geok")) | 
|---|
| 1105 | { | 
|---|
| 1106 | /* Undetermined; Khutsuri (Asomtavruli and Nuskhuri) */ | 
|---|
| 1107 | tags[0] = HB_TAG('K','G','E',' ');  /* Khutsuri Georgian */ | 
|---|
| 1108 | *count = 1; | 
|---|
| 1109 | return true; | 
|---|
| 1110 | } | 
|---|
| 1111 | if (subtag_matches (lang_str, limit, "-syre")) | 
|---|
| 1112 | { | 
|---|
| 1113 | /* Undetermined; Syriac (Estrangelo variant) */ | 
|---|
| 1114 | tags[0] = HB_TAG('S','Y','R','E');  /* Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre') */ | 
|---|
| 1115 | *count = 1; | 
|---|
| 1116 | return true; | 
|---|
| 1117 | } | 
|---|
| 1118 | if (subtag_matches (lang_str, limit, "-syrj")) | 
|---|
| 1119 | { | 
|---|
| 1120 | /* Undetermined; Syriac (Western variant) */ | 
|---|
| 1121 | tags[0] = HB_TAG('S','Y','R','J');  /* Syriac, Western script-variant (equivalent to ISO 15924 'Syrj') */ | 
|---|
| 1122 | *count = 1; | 
|---|
| 1123 | return true; | 
|---|
| 1124 | } | 
|---|
| 1125 | if (subtag_matches (lang_str, limit, "-syrn")) | 
|---|
| 1126 | { | 
|---|
| 1127 | /* Undetermined; Syriac (Eastern variant) */ | 
|---|
| 1128 | tags[0] = HB_TAG('S','Y','R','N');  /* Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn') */ | 
|---|
| 1129 | *count = 1; | 
|---|
| 1130 | return true; | 
|---|
| 1131 | } | 
|---|
| 1132 | switch (lang_str[0]) | 
|---|
| 1133 | { | 
|---|
| 1134 | case 'a': | 
|---|
| 1135 | if (0 == strcmp (&lang_str[1], "rt-lojban")) | 
|---|
| 1136 | { | 
|---|
| 1137 | /* Lojban */ | 
|---|
| 1138 | tags[0] = HB_TAG('J','B','O',' ');  /* Lojban */ | 
|---|
| 1139 | *count = 1; | 
|---|
| 1140 | return true; | 
|---|
| 1141 | } | 
|---|
| 1142 | break; | 
|---|
| 1143 | case 'c': | 
|---|
| 1144 | if (lang_matches (&lang_str[1], "do-hant-hk")) | 
|---|
| 1145 | { | 
|---|
| 1146 | /* Min Dong Chinese */ | 
|---|
| 1147 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1148 | *count = 1; | 
|---|
| 1149 | return true; | 
|---|
| 1150 | } | 
|---|
| 1151 | if (lang_matches (&lang_str[1], "do-hant-mo")) | 
|---|
| 1152 | { | 
|---|
| 1153 | /* Min Dong Chinese */ | 
|---|
| 1154 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1155 | *count = 1; | 
|---|
| 1156 | return true; | 
|---|
| 1157 | } | 
|---|
| 1158 | if (lang_matches (&lang_str[1], "jy-hant-hk")) | 
|---|
| 1159 | { | 
|---|
| 1160 | /* Jinyu Chinese */ | 
|---|
| 1161 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1162 | *count = 1; | 
|---|
| 1163 | return true; | 
|---|
| 1164 | } | 
|---|
| 1165 | if (lang_matches (&lang_str[1], "jy-hant-mo")) | 
|---|
| 1166 | { | 
|---|
| 1167 | /* Jinyu Chinese */ | 
|---|
| 1168 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1169 | *count = 1; | 
|---|
| 1170 | return true; | 
|---|
| 1171 | } | 
|---|
| 1172 | if (lang_matches (&lang_str[1], "mn-hant-hk")) | 
|---|
| 1173 | { | 
|---|
| 1174 | /* Mandarin Chinese */ | 
|---|
| 1175 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1176 | *count = 1; | 
|---|
| 1177 | return true; | 
|---|
| 1178 | } | 
|---|
| 1179 | if (lang_matches (&lang_str[1], "mn-hant-mo")) | 
|---|
| 1180 | { | 
|---|
| 1181 | /* Mandarin Chinese */ | 
|---|
| 1182 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1183 | *count = 1; | 
|---|
| 1184 | return true; | 
|---|
| 1185 | } | 
|---|
| 1186 | if (lang_matches (&lang_str[1], "px-hant-hk")) | 
|---|
| 1187 | { | 
|---|
| 1188 | /* Pu-Xian Chinese */ | 
|---|
| 1189 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1190 | *count = 1; | 
|---|
| 1191 | return true; | 
|---|
| 1192 | } | 
|---|
| 1193 | if (lang_matches (&lang_str[1], "px-hant-mo")) | 
|---|
| 1194 | { | 
|---|
| 1195 | /* Pu-Xian Chinese */ | 
|---|
| 1196 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1197 | *count = 1; | 
|---|
| 1198 | return true; | 
|---|
| 1199 | } | 
|---|
| 1200 | if (lang_matches (&lang_str[1], "zh-hant-hk")) | 
|---|
| 1201 | { | 
|---|
| 1202 | /* Huizhou Chinese */ | 
|---|
| 1203 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1204 | *count = 1; | 
|---|
| 1205 | return true; | 
|---|
| 1206 | } | 
|---|
| 1207 | if (lang_matches (&lang_str[1], "zh-hant-mo")) | 
|---|
| 1208 | { | 
|---|
| 1209 | /* Huizhou Chinese */ | 
|---|
| 1210 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1211 | *count = 1; | 
|---|
| 1212 | return true; | 
|---|
| 1213 | } | 
|---|
| 1214 | if (lang_matches (&lang_str[1], "zo-hant-hk")) | 
|---|
| 1215 | { | 
|---|
| 1216 | /* Min Zhong Chinese */ | 
|---|
| 1217 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1218 | *count = 1; | 
|---|
| 1219 | return true; | 
|---|
| 1220 | } | 
|---|
| 1221 | if (lang_matches (&lang_str[1], "zo-hant-mo")) | 
|---|
| 1222 | { | 
|---|
| 1223 | /* Min Zhong Chinese */ | 
|---|
| 1224 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1225 | *count = 1; | 
|---|
| 1226 | return true; | 
|---|
| 1227 | } | 
|---|
| 1228 | if (lang_matches (&lang_str[1], "do-hans")) | 
|---|
| 1229 | { | 
|---|
| 1230 | /* Min Dong Chinese */ | 
|---|
| 1231 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1232 | *count = 1; | 
|---|
| 1233 | return true; | 
|---|
| 1234 | } | 
|---|
| 1235 | if (lang_matches (&lang_str[1], "do-hant")) | 
|---|
| 1236 | { | 
|---|
| 1237 | /* Min Dong Chinese */ | 
|---|
| 1238 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1239 | *count = 1; | 
|---|
| 1240 | return true; | 
|---|
| 1241 | } | 
|---|
| 1242 | if (lang_matches (&lang_str[1], "jy-hans")) | 
|---|
| 1243 | { | 
|---|
| 1244 | /* Jinyu Chinese */ | 
|---|
| 1245 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1246 | *count = 1; | 
|---|
| 1247 | return true; | 
|---|
| 1248 | } | 
|---|
| 1249 | if (lang_matches (&lang_str[1], "jy-hant")) | 
|---|
| 1250 | { | 
|---|
| 1251 | /* Jinyu Chinese */ | 
|---|
| 1252 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1253 | *count = 1; | 
|---|
| 1254 | return true; | 
|---|
| 1255 | } | 
|---|
| 1256 | if (lang_matches (&lang_str[1], "mn-hans")) | 
|---|
| 1257 | { | 
|---|
| 1258 | /* Mandarin Chinese */ | 
|---|
| 1259 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1260 | *count = 1; | 
|---|
| 1261 | return true; | 
|---|
| 1262 | } | 
|---|
| 1263 | if (lang_matches (&lang_str[1], "mn-hant")) | 
|---|
| 1264 | { | 
|---|
| 1265 | /* Mandarin Chinese */ | 
|---|
| 1266 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1267 | *count = 1; | 
|---|
| 1268 | return true; | 
|---|
| 1269 | } | 
|---|
| 1270 | if (lang_matches (&lang_str[1], "px-hans")) | 
|---|
| 1271 | { | 
|---|
| 1272 | /* Pu-Xian Chinese */ | 
|---|
| 1273 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1274 | *count = 1; | 
|---|
| 1275 | return true; | 
|---|
| 1276 | } | 
|---|
| 1277 | if (lang_matches (&lang_str[1], "px-hant")) | 
|---|
| 1278 | { | 
|---|
| 1279 | /* Pu-Xian Chinese */ | 
|---|
| 1280 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1281 | *count = 1; | 
|---|
| 1282 | return true; | 
|---|
| 1283 | } | 
|---|
| 1284 | if (lang_matches (&lang_str[1], "zh-hans")) | 
|---|
| 1285 | { | 
|---|
| 1286 | /* Huizhou Chinese */ | 
|---|
| 1287 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1288 | *count = 1; | 
|---|
| 1289 | return true; | 
|---|
| 1290 | } | 
|---|
| 1291 | if (lang_matches (&lang_str[1], "zh-hant")) | 
|---|
| 1292 | { | 
|---|
| 1293 | /* Huizhou Chinese */ | 
|---|
| 1294 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1295 | *count = 1; | 
|---|
| 1296 | return true; | 
|---|
| 1297 | } | 
|---|
| 1298 | if (lang_matches (&lang_str[1], "zo-hans")) | 
|---|
| 1299 | { | 
|---|
| 1300 | /* Min Zhong Chinese */ | 
|---|
| 1301 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1302 | *count = 1; | 
|---|
| 1303 | return true; | 
|---|
| 1304 | } | 
|---|
| 1305 | if (lang_matches (&lang_str[1], "zo-hant")) | 
|---|
| 1306 | { | 
|---|
| 1307 | /* Min Zhong Chinese */ | 
|---|
| 1308 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1309 | *count = 1; | 
|---|
| 1310 | return true; | 
|---|
| 1311 | } | 
|---|
| 1312 | if (0 == strncmp (&lang_str[1], "do-", 3) | 
|---|
| 1313 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1314 | { | 
|---|
| 1315 | /* Min Dong Chinese; Hong Kong */ | 
|---|
| 1316 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1317 | *count = 1; | 
|---|
| 1318 | return true; | 
|---|
| 1319 | } | 
|---|
| 1320 | if (0 == strncmp (&lang_str[1], "do-", 3) | 
|---|
| 1321 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1322 | { | 
|---|
| 1323 | /* Min Dong Chinese; Macao */ | 
|---|
| 1324 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1325 | *count = 1; | 
|---|
| 1326 | return true; | 
|---|
| 1327 | } | 
|---|
| 1328 | if (0 == strncmp (&lang_str[1], "do-", 3) | 
|---|
| 1329 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1330 | { | 
|---|
| 1331 | /* Min Dong Chinese; Taiwan, Province of China */ | 
|---|
| 1332 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1333 | *count = 1; | 
|---|
| 1334 | return true; | 
|---|
| 1335 | } | 
|---|
| 1336 | if (0 == strncmp (&lang_str[1], "jy-", 3) | 
|---|
| 1337 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1338 | { | 
|---|
| 1339 | /* Jinyu Chinese; Hong Kong */ | 
|---|
| 1340 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1341 | *count = 1; | 
|---|
| 1342 | return true; | 
|---|
| 1343 | } | 
|---|
| 1344 | if (0 == strncmp (&lang_str[1], "jy-", 3) | 
|---|
| 1345 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1346 | { | 
|---|
| 1347 | /* Jinyu Chinese; Macao */ | 
|---|
| 1348 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1349 | *count = 1; | 
|---|
| 1350 | return true; | 
|---|
| 1351 | } | 
|---|
| 1352 | if (0 == strncmp (&lang_str[1], "jy-", 3) | 
|---|
| 1353 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1354 | { | 
|---|
| 1355 | /* Jinyu Chinese; Taiwan, Province of China */ | 
|---|
| 1356 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1357 | *count = 1; | 
|---|
| 1358 | return true; | 
|---|
| 1359 | } | 
|---|
| 1360 | if (0 == strncmp (&lang_str[1], "mn-", 3) | 
|---|
| 1361 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1362 | { | 
|---|
| 1363 | /* Mandarin Chinese; Hong Kong */ | 
|---|
| 1364 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1365 | *count = 1; | 
|---|
| 1366 | return true; | 
|---|
| 1367 | } | 
|---|
| 1368 | if (0 == strncmp (&lang_str[1], "mn-", 3) | 
|---|
| 1369 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1370 | { | 
|---|
| 1371 | /* Mandarin Chinese; Macao */ | 
|---|
| 1372 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1373 | *count = 1; | 
|---|
| 1374 | return true; | 
|---|
| 1375 | } | 
|---|
| 1376 | if (0 == strncmp (&lang_str[1], "mn-", 3) | 
|---|
| 1377 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1378 | { | 
|---|
| 1379 | /* Mandarin Chinese; Taiwan, Province of China */ | 
|---|
| 1380 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1381 | *count = 1; | 
|---|
| 1382 | return true; | 
|---|
| 1383 | } | 
|---|
| 1384 | if (0 == strncmp (&lang_str[1], "px-", 3) | 
|---|
| 1385 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1386 | { | 
|---|
| 1387 | /* Pu-Xian Chinese; Hong Kong */ | 
|---|
| 1388 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1389 | *count = 1; | 
|---|
| 1390 | return true; | 
|---|
| 1391 | } | 
|---|
| 1392 | if (0 == strncmp (&lang_str[1], "px-", 3) | 
|---|
| 1393 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1394 | { | 
|---|
| 1395 | /* Pu-Xian Chinese; Macao */ | 
|---|
| 1396 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1397 | *count = 1; | 
|---|
| 1398 | return true; | 
|---|
| 1399 | } | 
|---|
| 1400 | if (0 == strncmp (&lang_str[1], "px-", 3) | 
|---|
| 1401 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1402 | { | 
|---|
| 1403 | /* Pu-Xian Chinese; Taiwan, Province of China */ | 
|---|
| 1404 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1405 | *count = 1; | 
|---|
| 1406 | return true; | 
|---|
| 1407 | } | 
|---|
| 1408 | if (0 == strncmp (&lang_str[1], "zh-", 3) | 
|---|
| 1409 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1410 | { | 
|---|
| 1411 | /* Huizhou Chinese; Hong Kong */ | 
|---|
| 1412 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1413 | *count = 1; | 
|---|
| 1414 | return true; | 
|---|
| 1415 | } | 
|---|
| 1416 | if (0 == strncmp (&lang_str[1], "zh-", 3) | 
|---|
| 1417 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1418 | { | 
|---|
| 1419 | /* Huizhou Chinese; Macao */ | 
|---|
| 1420 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1421 | *count = 1; | 
|---|
| 1422 | return true; | 
|---|
| 1423 | } | 
|---|
| 1424 | if (0 == strncmp (&lang_str[1], "zh-", 3) | 
|---|
| 1425 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1426 | { | 
|---|
| 1427 | /* Huizhou Chinese; Taiwan, Province of China */ | 
|---|
| 1428 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1429 | *count = 1; | 
|---|
| 1430 | return true; | 
|---|
| 1431 | } | 
|---|
| 1432 | if (0 == strncmp (&lang_str[1], "zo-", 3) | 
|---|
| 1433 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1434 | { | 
|---|
| 1435 | /* Min Zhong Chinese; Hong Kong */ | 
|---|
| 1436 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1437 | *count = 1; | 
|---|
| 1438 | return true; | 
|---|
| 1439 | } | 
|---|
| 1440 | if (0 == strncmp (&lang_str[1], "zo-", 3) | 
|---|
| 1441 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1442 | { | 
|---|
| 1443 | /* Min Zhong Chinese; Macao */ | 
|---|
| 1444 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1445 | *count = 1; | 
|---|
| 1446 | return true; | 
|---|
| 1447 | } | 
|---|
| 1448 | if (0 == strncmp (&lang_str[1], "zo-", 3) | 
|---|
| 1449 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1450 | { | 
|---|
| 1451 | /* Min Zhong Chinese; Taiwan, Province of China */ | 
|---|
| 1452 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1453 | *count = 1; | 
|---|
| 1454 | return true; | 
|---|
| 1455 | } | 
|---|
| 1456 | break; | 
|---|
| 1457 | case 'g': | 
|---|
| 1458 | if (lang_matches (&lang_str[1], "an-hant-hk")) | 
|---|
| 1459 | { | 
|---|
| 1460 | /* Gan Chinese */ | 
|---|
| 1461 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1462 | *count = 1; | 
|---|
| 1463 | return true; | 
|---|
| 1464 | } | 
|---|
| 1465 | if (lang_matches (&lang_str[1], "an-hant-mo")) | 
|---|
| 1466 | { | 
|---|
| 1467 | /* Gan Chinese */ | 
|---|
| 1468 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1469 | *count = 1; | 
|---|
| 1470 | return true; | 
|---|
| 1471 | } | 
|---|
| 1472 | if (lang_matches (&lang_str[1], "an-hans")) | 
|---|
| 1473 | { | 
|---|
| 1474 | /* Gan Chinese */ | 
|---|
| 1475 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1476 | *count = 1; | 
|---|
| 1477 | return true; | 
|---|
| 1478 | } | 
|---|
| 1479 | if (lang_matches (&lang_str[1], "an-hant")) | 
|---|
| 1480 | { | 
|---|
| 1481 | /* Gan Chinese */ | 
|---|
| 1482 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1483 | *count = 1; | 
|---|
| 1484 | return true; | 
|---|
| 1485 | } | 
|---|
| 1486 | if (lang_matches (&lang_str[1], "a-latg")) | 
|---|
| 1487 | { | 
|---|
| 1488 | /* Irish */ | 
|---|
| 1489 | tags[0] = HB_TAG('I','R','T',' ');  /* Irish Traditional */ | 
|---|
| 1490 | *count = 1; | 
|---|
| 1491 | return true; | 
|---|
| 1492 | } | 
|---|
| 1493 | if (0 == strncmp (&lang_str[1], "an-", 3) | 
|---|
| 1494 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1495 | { | 
|---|
| 1496 | /* Gan Chinese; Hong Kong */ | 
|---|
| 1497 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1498 | *count = 1; | 
|---|
| 1499 | return true; | 
|---|
| 1500 | } | 
|---|
| 1501 | if (0 == strncmp (&lang_str[1], "an-", 3) | 
|---|
| 1502 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1503 | { | 
|---|
| 1504 | /* Gan Chinese; Macao */ | 
|---|
| 1505 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1506 | *count = 1; | 
|---|
| 1507 | return true; | 
|---|
| 1508 | } | 
|---|
| 1509 | if (0 == strncmp (&lang_str[1], "an-", 3) | 
|---|
| 1510 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1511 | { | 
|---|
| 1512 | /* Gan Chinese; Taiwan, Province of China */ | 
|---|
| 1513 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1514 | *count = 1; | 
|---|
| 1515 | return true; | 
|---|
| 1516 | } | 
|---|
| 1517 | break; | 
|---|
| 1518 | case 'h': | 
|---|
| 1519 | if (lang_matches (&lang_str[1], "ak-hant-hk")) | 
|---|
| 1520 | { | 
|---|
| 1521 | /* Hakka Chinese */ | 
|---|
| 1522 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1523 | *count = 1; | 
|---|
| 1524 | return true; | 
|---|
| 1525 | } | 
|---|
| 1526 | if (lang_matches (&lang_str[1], "ak-hant-mo")) | 
|---|
| 1527 | { | 
|---|
| 1528 | /* Hakka Chinese */ | 
|---|
| 1529 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1530 | *count = 1; | 
|---|
| 1531 | return true; | 
|---|
| 1532 | } | 
|---|
| 1533 | if (lang_matches (&lang_str[1], "sn-hant-hk")) | 
|---|
| 1534 | { | 
|---|
| 1535 | /* Xiang Chinese */ | 
|---|
| 1536 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1537 | *count = 1; | 
|---|
| 1538 | return true; | 
|---|
| 1539 | } | 
|---|
| 1540 | if (lang_matches (&lang_str[1], "sn-hant-mo")) | 
|---|
| 1541 | { | 
|---|
| 1542 | /* Xiang Chinese */ | 
|---|
| 1543 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1544 | *count = 1; | 
|---|
| 1545 | return true; | 
|---|
| 1546 | } | 
|---|
| 1547 | if (lang_matches (&lang_str[1], "ak-hans")) | 
|---|
| 1548 | { | 
|---|
| 1549 | /* Hakka Chinese */ | 
|---|
| 1550 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1551 | *count = 1; | 
|---|
| 1552 | return true; | 
|---|
| 1553 | } | 
|---|
| 1554 | if (lang_matches (&lang_str[1], "ak-hant")) | 
|---|
| 1555 | { | 
|---|
| 1556 | /* Hakka Chinese */ | 
|---|
| 1557 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1558 | *count = 1; | 
|---|
| 1559 | return true; | 
|---|
| 1560 | } | 
|---|
| 1561 | if (lang_matches (&lang_str[1], "sn-hans")) | 
|---|
| 1562 | { | 
|---|
| 1563 | /* Xiang Chinese */ | 
|---|
| 1564 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1565 | *count = 1; | 
|---|
| 1566 | return true; | 
|---|
| 1567 | } | 
|---|
| 1568 | if (lang_matches (&lang_str[1], "sn-hant")) | 
|---|
| 1569 | { | 
|---|
| 1570 | /* Xiang Chinese */ | 
|---|
| 1571 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1572 | *count = 1; | 
|---|
| 1573 | return true; | 
|---|
| 1574 | } | 
|---|
| 1575 | if (0 == strncmp (&lang_str[1], "ak-", 3) | 
|---|
| 1576 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1577 | { | 
|---|
| 1578 | /* Hakka Chinese; Hong Kong */ | 
|---|
| 1579 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1580 | *count = 1; | 
|---|
| 1581 | return true; | 
|---|
| 1582 | } | 
|---|
| 1583 | if (0 == strncmp (&lang_str[1], "ak-", 3) | 
|---|
| 1584 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1585 | { | 
|---|
| 1586 | /* Hakka Chinese; Macao */ | 
|---|
| 1587 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1588 | *count = 1; | 
|---|
| 1589 | return true; | 
|---|
| 1590 | } | 
|---|
| 1591 | if (0 == strncmp (&lang_str[1], "ak-", 3) | 
|---|
| 1592 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1593 | { | 
|---|
| 1594 | /* Hakka Chinese; Taiwan, Province of China */ | 
|---|
| 1595 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1596 | *count = 1; | 
|---|
| 1597 | return true; | 
|---|
| 1598 | } | 
|---|
| 1599 | if (0 == strncmp (&lang_str[1], "sn-", 3) | 
|---|
| 1600 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1601 | { | 
|---|
| 1602 | /* Xiang Chinese; Hong Kong */ | 
|---|
| 1603 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1604 | *count = 1; | 
|---|
| 1605 | return true; | 
|---|
| 1606 | } | 
|---|
| 1607 | if (0 == strncmp (&lang_str[1], "sn-", 3) | 
|---|
| 1608 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1609 | { | 
|---|
| 1610 | /* Xiang Chinese; Macao */ | 
|---|
| 1611 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1612 | *count = 1; | 
|---|
| 1613 | return true; | 
|---|
| 1614 | } | 
|---|
| 1615 | if (0 == strncmp (&lang_str[1], "sn-", 3) | 
|---|
| 1616 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1617 | { | 
|---|
| 1618 | /* Xiang Chinese; Taiwan, Province of China */ | 
|---|
| 1619 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1620 | *count = 1; | 
|---|
| 1621 | return true; | 
|---|
| 1622 | } | 
|---|
| 1623 | break; | 
|---|
| 1624 | case 'i': | 
|---|
| 1625 | if (0 == strcmp (&lang_str[1], "-navajo")) | 
|---|
| 1626 | { | 
|---|
| 1627 | /* Navajo */ | 
|---|
| 1628 | unsigned int i; | 
|---|
| 1629 | hb_tag_t possible_tags[] = { | 
|---|
| 1630 | HB_TAG('N','A','V',' '),  /* Navajo */ | 
|---|
| 1631 | HB_TAG('A','T','H',' '),  /* Athapaskan */ | 
|---|
| 1632 | }; | 
|---|
| 1633 | for (i = 0; i < 2 && i < *count; i++) | 
|---|
| 1634 | tags[i] = possible_tags[i]; | 
|---|
| 1635 | *count = i; | 
|---|
| 1636 | return true; | 
|---|
| 1637 | } | 
|---|
| 1638 | if (0 == strcmp (&lang_str[1], "-hak")) | 
|---|
| 1639 | { | 
|---|
| 1640 | /* Hakka */ | 
|---|
| 1641 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1642 | *count = 1; | 
|---|
| 1643 | return true; | 
|---|
| 1644 | } | 
|---|
| 1645 | if (0 == strcmp (&lang_str[1], "-lux")) | 
|---|
| 1646 | { | 
|---|
| 1647 | /* Luxembourgish */ | 
|---|
| 1648 | tags[0] = HB_TAG('L','T','Z',' ');  /* Luxembourgish */ | 
|---|
| 1649 | *count = 1; | 
|---|
| 1650 | return true; | 
|---|
| 1651 | } | 
|---|
| 1652 | break; | 
|---|
| 1653 | case 'l': | 
|---|
| 1654 | if (lang_matches (&lang_str[1], "zh-hans")) | 
|---|
| 1655 | { | 
|---|
| 1656 | /* Literary Chinese */ | 
|---|
| 1657 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1658 | *count = 1; | 
|---|
| 1659 | return true; | 
|---|
| 1660 | } | 
|---|
| 1661 | break; | 
|---|
| 1662 | case 'm': | 
|---|
| 1663 | if (lang_matches (&lang_str[1], "np-hant-hk")) | 
|---|
| 1664 | { | 
|---|
| 1665 | /* Min Bei Chinese */ | 
|---|
| 1666 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1667 | *count = 1; | 
|---|
| 1668 | return true; | 
|---|
| 1669 | } | 
|---|
| 1670 | if (lang_matches (&lang_str[1], "np-hant-mo")) | 
|---|
| 1671 | { | 
|---|
| 1672 | /* Min Bei Chinese */ | 
|---|
| 1673 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1674 | *count = 1; | 
|---|
| 1675 | return true; | 
|---|
| 1676 | } | 
|---|
| 1677 | if (lang_matches (&lang_str[1], "np-hans")) | 
|---|
| 1678 | { | 
|---|
| 1679 | /* Min Bei Chinese */ | 
|---|
| 1680 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1681 | *count = 1; | 
|---|
| 1682 | return true; | 
|---|
| 1683 | } | 
|---|
| 1684 | if (lang_matches (&lang_str[1], "np-hant")) | 
|---|
| 1685 | { | 
|---|
| 1686 | /* Min Bei Chinese */ | 
|---|
| 1687 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1688 | *count = 1; | 
|---|
| 1689 | return true; | 
|---|
| 1690 | } | 
|---|
| 1691 | if (0 == strncmp (&lang_str[1], "np-", 3) | 
|---|
| 1692 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1693 | { | 
|---|
| 1694 | /* Min Bei Chinese; Hong Kong */ | 
|---|
| 1695 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1696 | *count = 1; | 
|---|
| 1697 | return true; | 
|---|
| 1698 | } | 
|---|
| 1699 | if (0 == strncmp (&lang_str[1], "np-", 3) | 
|---|
| 1700 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1701 | { | 
|---|
| 1702 | /* Min Bei Chinese; Macao */ | 
|---|
| 1703 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1704 | *count = 1; | 
|---|
| 1705 | return true; | 
|---|
| 1706 | } | 
|---|
| 1707 | if (0 == strncmp (&lang_str[1], "np-", 3) | 
|---|
| 1708 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1709 | { | 
|---|
| 1710 | /* Min Bei Chinese; Taiwan, Province of China */ | 
|---|
| 1711 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1712 | *count = 1; | 
|---|
| 1713 | return true; | 
|---|
| 1714 | } | 
|---|
| 1715 | break; | 
|---|
| 1716 | case 'n': | 
|---|
| 1717 | if (lang_matches (&lang_str[1], "an-hant-hk")) | 
|---|
| 1718 | { | 
|---|
| 1719 | /* Min Nan Chinese */ | 
|---|
| 1720 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1721 | *count = 1; | 
|---|
| 1722 | return true; | 
|---|
| 1723 | } | 
|---|
| 1724 | if (lang_matches (&lang_str[1], "an-hant-mo")) | 
|---|
| 1725 | { | 
|---|
| 1726 | /* Min Nan Chinese */ | 
|---|
| 1727 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1728 | *count = 1; | 
|---|
| 1729 | return true; | 
|---|
| 1730 | } | 
|---|
| 1731 | if (lang_matches (&lang_str[1], "an-hans")) | 
|---|
| 1732 | { | 
|---|
| 1733 | /* Min Nan Chinese */ | 
|---|
| 1734 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1735 | *count = 1; | 
|---|
| 1736 | return true; | 
|---|
| 1737 | } | 
|---|
| 1738 | if (lang_matches (&lang_str[1], "an-hant")) | 
|---|
| 1739 | { | 
|---|
| 1740 | /* Min Nan Chinese */ | 
|---|
| 1741 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1742 | *count = 1; | 
|---|
| 1743 | return true; | 
|---|
| 1744 | } | 
|---|
| 1745 | if (0 == strncmp (&lang_str[1], "an-", 3) | 
|---|
| 1746 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1747 | { | 
|---|
| 1748 | /* Min Nan Chinese; Hong Kong */ | 
|---|
| 1749 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1750 | *count = 1; | 
|---|
| 1751 | return true; | 
|---|
| 1752 | } | 
|---|
| 1753 | if (0 == strncmp (&lang_str[1], "an-", 3) | 
|---|
| 1754 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1755 | { | 
|---|
| 1756 | /* Min Nan Chinese; Macao */ | 
|---|
| 1757 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1758 | *count = 1; | 
|---|
| 1759 | return true; | 
|---|
| 1760 | } | 
|---|
| 1761 | if (0 == strncmp (&lang_str[1], "an-", 3) | 
|---|
| 1762 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1763 | { | 
|---|
| 1764 | /* Min Nan Chinese; Taiwan, Province of China */ | 
|---|
| 1765 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1766 | *count = 1; | 
|---|
| 1767 | return true; | 
|---|
| 1768 | } | 
|---|
| 1769 | if (0 == strcmp (&lang_str[1], "o-bok")) | 
|---|
| 1770 | { | 
|---|
| 1771 | /* Norwegian Bokmal */ | 
|---|
| 1772 | tags[0] = HB_TAG('N','O','R',' ');  /* Norwegian */ | 
|---|
| 1773 | *count = 1; | 
|---|
| 1774 | return true; | 
|---|
| 1775 | } | 
|---|
| 1776 | if (0 == strcmp (&lang_str[1], "o-nyn")) | 
|---|
| 1777 | { | 
|---|
| 1778 | /* Norwegian Nynorsk */ | 
|---|
| 1779 | tags[0] = HB_TAG('N','Y','N',' ');  /* Norwegian Nynorsk (Nynorsk, Norwegian) */ | 
|---|
| 1780 | *count = 1; | 
|---|
| 1781 | return true; | 
|---|
| 1782 | } | 
|---|
| 1783 | break; | 
|---|
| 1784 | case 'r': | 
|---|
| 1785 | if (0 == strncmp (&lang_str[1], "o-", 2) | 
|---|
| 1786 | && subtag_matches (lang_str, limit, "-md")) | 
|---|
| 1787 | { | 
|---|
| 1788 | /* Romanian; Moldova */ | 
|---|
| 1789 | tags[0] = HB_TAG('M','O','L',' ');  /* Moldavian */ | 
|---|
| 1790 | *count = 1; | 
|---|
| 1791 | return true; | 
|---|
| 1792 | } | 
|---|
| 1793 | break; | 
|---|
| 1794 | case 'w': | 
|---|
| 1795 | if (lang_matches (&lang_str[1], "uu-hant-hk")) | 
|---|
| 1796 | { | 
|---|
| 1797 | /* Wu Chinese */ | 
|---|
| 1798 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1799 | *count = 1; | 
|---|
| 1800 | return true; | 
|---|
| 1801 | } | 
|---|
| 1802 | if (lang_matches (&lang_str[1], "uu-hant-mo")) | 
|---|
| 1803 | { | 
|---|
| 1804 | /* Wu Chinese */ | 
|---|
| 1805 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1806 | *count = 1; | 
|---|
| 1807 | return true; | 
|---|
| 1808 | } | 
|---|
| 1809 | if (lang_matches (&lang_str[1], "uu-hans")) | 
|---|
| 1810 | { | 
|---|
| 1811 | /* Wu Chinese */ | 
|---|
| 1812 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1813 | *count = 1; | 
|---|
| 1814 | return true; | 
|---|
| 1815 | } | 
|---|
| 1816 | if (lang_matches (&lang_str[1], "uu-hant")) | 
|---|
| 1817 | { | 
|---|
| 1818 | /* Wu Chinese */ | 
|---|
| 1819 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1820 | *count = 1; | 
|---|
| 1821 | return true; | 
|---|
| 1822 | } | 
|---|
| 1823 | if (0 == strncmp (&lang_str[1], "uu-", 3) | 
|---|
| 1824 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1825 | { | 
|---|
| 1826 | /* Wu Chinese; Hong Kong */ | 
|---|
| 1827 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1828 | *count = 1; | 
|---|
| 1829 | return true; | 
|---|
| 1830 | } | 
|---|
| 1831 | if (0 == strncmp (&lang_str[1], "uu-", 3) | 
|---|
| 1832 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1833 | { | 
|---|
| 1834 | /* Wu Chinese; Macao */ | 
|---|
| 1835 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1836 | *count = 1; | 
|---|
| 1837 | return true; | 
|---|
| 1838 | } | 
|---|
| 1839 | if (0 == strncmp (&lang_str[1], "uu-", 3) | 
|---|
| 1840 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1841 | { | 
|---|
| 1842 | /* Wu Chinese; Taiwan, Province of China */ | 
|---|
| 1843 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1844 | *count = 1; | 
|---|
| 1845 | return true; | 
|---|
| 1846 | } | 
|---|
| 1847 | break; | 
|---|
| 1848 | case 'y': | 
|---|
| 1849 | if (lang_matches (&lang_str[1], "ue-hans")) | 
|---|
| 1850 | { | 
|---|
| 1851 | /* Yue Chinese */ | 
|---|
| 1852 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1853 | *count = 1; | 
|---|
| 1854 | return true; | 
|---|
| 1855 | } | 
|---|
| 1856 | break; | 
|---|
| 1857 | case 'z': | 
|---|
| 1858 | if (lang_matches (&lang_str[1], "h-hant-hk")) | 
|---|
| 1859 | { | 
|---|
| 1860 | /* Chinese */ | 
|---|
| 1861 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1862 | *count = 1; | 
|---|
| 1863 | return true; | 
|---|
| 1864 | } | 
|---|
| 1865 | if (lang_matches (&lang_str[1], "h-hant-mo")) | 
|---|
| 1866 | { | 
|---|
| 1867 | /* Chinese */ | 
|---|
| 1868 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1869 | *count = 1; | 
|---|
| 1870 | return true; | 
|---|
| 1871 | } | 
|---|
| 1872 | if (0 == strcmp (&lang_str[1], "h-min-nan")) | 
|---|
| 1873 | { | 
|---|
| 1874 | /* Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern Fujian, Hoklo, Southern Fukien, Ho-lo */ | 
|---|
| 1875 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1876 | *count = 1; | 
|---|
| 1877 | return true; | 
|---|
| 1878 | } | 
|---|
| 1879 | if (lang_matches (&lang_str[1], "h-hans")) | 
|---|
| 1880 | { | 
|---|
| 1881 | /* Chinese */ | 
|---|
| 1882 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1883 | *count = 1; | 
|---|
| 1884 | return true; | 
|---|
| 1885 | } | 
|---|
| 1886 | if (lang_matches (&lang_str[1], "h-hant")) | 
|---|
| 1887 | { | 
|---|
| 1888 | /* Chinese */ | 
|---|
| 1889 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1890 | *count = 1; | 
|---|
| 1891 | return true; | 
|---|
| 1892 | } | 
|---|
| 1893 | if (0 == strcmp (&lang_str[1], "h-min")) | 
|---|
| 1894 | { | 
|---|
| 1895 | /* Min, Fuzhou, Hokkien, Amoy, or Taiwanese */ | 
|---|
| 1896 | tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */ | 
|---|
| 1897 | *count = 1; | 
|---|
| 1898 | return true; | 
|---|
| 1899 | } | 
|---|
| 1900 | if (0 == strncmp (&lang_str[1], "h-", 2) | 
|---|
| 1901 | && subtag_matches (lang_str, limit, "-hk")) | 
|---|
| 1902 | { | 
|---|
| 1903 | /* Chinese; Hong Kong */ | 
|---|
| 1904 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1905 | *count = 1; | 
|---|
| 1906 | return true; | 
|---|
| 1907 | } | 
|---|
| 1908 | if (0 == strncmp (&lang_str[1], "h-", 2) | 
|---|
| 1909 | && subtag_matches (lang_str, limit, "-mo")) | 
|---|
| 1910 | { | 
|---|
| 1911 | /* Chinese; Macao */ | 
|---|
| 1912 | tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */ | 
|---|
| 1913 | *count = 1; | 
|---|
| 1914 | return true; | 
|---|
| 1915 | } | 
|---|
| 1916 | if (0 == strncmp (&lang_str[1], "h-", 2) | 
|---|
| 1917 | && subtag_matches (lang_str, limit, "-tw")) | 
|---|
| 1918 | { | 
|---|
| 1919 | /* Chinese; Taiwan, Province of China */ | 
|---|
| 1920 | tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */ | 
|---|
| 1921 | *count = 1; | 
|---|
| 1922 | return true; | 
|---|
| 1923 | } | 
|---|
| 1924 | break; | 
|---|
| 1925 | } | 
|---|
| 1926 | return false; | 
|---|
| 1927 | } | 
|---|
| 1928 |  | 
|---|
| 1929 | /** | 
|---|
| 1930 | * hb_ot_ambiguous_tag_to_language | 
|---|
| 1931 | * @tag: A language tag. | 
|---|
| 1932 | * | 
|---|
| 1933 | * Converts @tag to a BCP 47 language tag if it is ambiguous (it corresponds to | 
|---|
| 1934 | * many language tags) and the best tag is not the alphabetically first, or if | 
|---|
| 1935 | * the best tag consists of multiple subtags, or if the best tag does not appear | 
|---|
| 1936 | * in #ot_languages. | 
|---|
| 1937 | * | 
|---|
| 1938 | * Return value: The #hb_language_t corresponding to the BCP 47 language tag, | 
|---|
| 1939 | * or #HB_LANGUAGE_INVALID if @tag is not ambiguous. | 
|---|
| 1940 | **/ | 
|---|
| 1941 | static hb_language_t | 
|---|
| 1942 | hb_ot_ambiguous_tag_to_language (hb_tag_t tag) | 
|---|
| 1943 | { | 
|---|
| 1944 | switch (tag) | 
|---|
| 1945 | { | 
|---|
| 1946 | case HB_TAG('A','L','T',' '):  /* Altai */ | 
|---|
| 1947 | return hb_language_from_string ( "alt", -1);  /* Southern Altai */ | 
|---|
| 1948 | case HB_TAG('A','P','P','H'):  /* Phonetic transcription—Americanist conventions */ | 
|---|
| 1949 | return hb_language_from_string ( "und-fonnapa", -1);  /* Undetermined; North American Phonetic Alphabet */ | 
|---|
| 1950 | case HB_TAG('A','R','A',' '):  /* Arabic */ | 
|---|
| 1951 | return hb_language_from_string ( "ar", -1);  /* Arabic */ | 
|---|
| 1952 | case HB_TAG('A','R','K',' '):  /* Rakhine */ | 
|---|
| 1953 | return hb_language_from_string ( "rki", -1);  /* Rakhine */ | 
|---|
| 1954 | case HB_TAG('A','T','H',' '):  /* Athapaskan */ | 
|---|
| 1955 | return hb_language_from_string ( "ath", -1);  /* Athapascan */ | 
|---|
| 1956 | case HB_TAG('B','I','K',' '):  /* Bikol */ | 
|---|
| 1957 | return hb_language_from_string ( "bik", -1);  /* Bikol */ | 
|---|
| 1958 | case HB_TAG('C','P','P',' '):  /* Creoles */ | 
|---|
| 1959 | return hb_language_from_string ( "crp", -1);  /* Creoles and pidgins */ | 
|---|
| 1960 | case HB_TAG('C','R','R',' '):  /* Carrier */ | 
|---|
| 1961 | return hb_language_from_string ( "crx", -1);  /* Carrier */ | 
|---|
| 1962 | case HB_TAG('D','N','K',' '):  /* Dinka */ | 
|---|
| 1963 | return hb_language_from_string ( "din", -1);  /* Dinka */ | 
|---|
| 1964 | case HB_TAG('D','R','I',' '):  /* Dari */ | 
|---|
| 1965 | return hb_language_from_string ( "prs", -1);  /* Dari */ | 
|---|
| 1966 | case HB_TAG('D','Z','N',' '):  /* Dzongkha */ | 
|---|
| 1967 | return hb_language_from_string ( "dz", -1);  /* Dzongkha */ | 
|---|
| 1968 | case HB_TAG('E','T','I',' '):  /* Estonian */ | 
|---|
| 1969 | return hb_language_from_string ( "et", -1);  /* Estonian */ | 
|---|
| 1970 | case HB_TAG('G','O','N',' '):  /* Gondi */ | 
|---|
| 1971 | return hb_language_from_string ( "gon", -1);  /* Gondi */ | 
|---|
| 1972 | case HB_TAG('H','M','N',' '):  /* Hmong */ | 
|---|
| 1973 | return hb_language_from_string ( "hmn", -1);  /* Hmong */ | 
|---|
| 1974 | case HB_TAG('H','N','D',' '):  /* Hindko */ | 
|---|
| 1975 | return hb_language_from_string ( "hnd", -1);  /* Southern Hindko */ | 
|---|
| 1976 | case HB_TAG('I','J','O',' '):  /* Ijo */ | 
|---|
| 1977 | return hb_language_from_string ( "ijo", -1);  /* Ijo */ | 
|---|
| 1978 | case HB_TAG('I','N','U',' '):  /* Inuktitut */ | 
|---|
| 1979 | return hb_language_from_string ( "iu", -1);  /* Inuktitut */ | 
|---|
| 1980 | case HB_TAG('I','P','K',' '):  /* Inupiat */ | 
|---|
| 1981 | return hb_language_from_string ( "ik", -1);  /* Inupiaq */ | 
|---|
| 1982 | case HB_TAG('I','P','P','H'):  /* Phonetic transcription—IPA conventions */ | 
|---|
| 1983 | return hb_language_from_string ( "und-fonipa", -1);  /* Undetermined; International Phonetic Alphabet */ | 
|---|
| 1984 | case HB_TAG('I','R','T',' '):  /* Irish Traditional */ | 
|---|
| 1985 | return hb_language_from_string ( "ga-Latg", -1);  /* Irish; Latin (Gaelic variant) */ | 
|---|
| 1986 | case HB_TAG('J','I','I',' '):  /* Yiddish */ | 
|---|
| 1987 | return hb_language_from_string ( "yi", -1);  /* Yiddish */ | 
|---|
| 1988 | case HB_TAG('K','A','L',' '):  /* Kalenjin */ | 
|---|
| 1989 | return hb_language_from_string ( "kln", -1);  /* Kalenjin */ | 
|---|
| 1990 | case HB_TAG('K','G','E',' '):  /* Khutsuri Georgian */ | 
|---|
| 1991 | return hb_language_from_string ( "und-Geok", -1);  /* Undetermined; Khutsuri (Asomtavruli and Nuskhuri) */ | 
|---|
| 1992 | case HB_TAG('K','N','R',' '):  /* Kanuri */ | 
|---|
| 1993 | return hb_language_from_string ( "kr", -1);  /* Kanuri */ | 
|---|
| 1994 | case HB_TAG('K','O','K',' '):  /* Konkani */ | 
|---|
| 1995 | return hb_language_from_string ( "kok", -1);  /* Konkani */ | 
|---|
| 1996 | case HB_TAG('K','U','R',' '):  /* Kurdish */ | 
|---|
| 1997 | return hb_language_from_string ( "ku", -1);  /* Kurdish */ | 
|---|
| 1998 | case HB_TAG('L','U','H',' '):  /* Luyia */ | 
|---|
| 1999 | return hb_language_from_string ( "luy", -1);  /* Luyia */ | 
|---|
| 2000 | case HB_TAG('L','V','I',' '):  /* Latvian */ | 
|---|
| 2001 | return hb_language_from_string ( "lv", -1);  /* Latvian */ | 
|---|
| 2002 | case HB_TAG('M','A','W',' '):  /* Marwari */ | 
|---|
| 2003 | return hb_language_from_string ( "mwr", -1);  /* Marwari */ | 
|---|
| 2004 | case HB_TAG('M','L','G',' '):  /* Malagasy */ | 
|---|
| 2005 | return hb_language_from_string ( "mg", -1);  /* Malagasy */ | 
|---|
| 2006 | case HB_TAG('M','L','Y',' '):  /* Malay */ | 
|---|
| 2007 | return hb_language_from_string ( "ms", -1);  /* Malay */ | 
|---|
| 2008 | case HB_TAG('M','N','G',' '):  /* Mongolian */ | 
|---|
| 2009 | return hb_language_from_string ( "mn", -1);  /* Mongolian */ | 
|---|
| 2010 | case HB_TAG('M','O','L',' '):  /* Moldavian */ | 
|---|
| 2011 | return hb_language_from_string ( "ro-MD", -1);  /* Romanian; Moldova */ | 
|---|
| 2012 | case HB_TAG('N','E','P',' '):  /* Nepali */ | 
|---|
| 2013 | return hb_language_from_string ( "ne", -1);  /* Nepali */ | 
|---|
| 2014 | case HB_TAG('N','I','S',' '):  /* Nisi */ | 
|---|
| 2015 | return hb_language_from_string ( "njz", -1);  /* Nyishi */ | 
|---|
| 2016 | case HB_TAG('N','O','R',' '):  /* Norwegian */ | 
|---|
| 2017 | return hb_language_from_string ( "no", -1);  /* Norwegian */ | 
|---|
| 2018 | case HB_TAG('O','J','B',' '):  /* Ojibway */ | 
|---|
| 2019 | return hb_language_from_string ( "oj", -1);  /* Ojibwa */ | 
|---|
| 2020 | case HB_TAG('O','R','O',' '):  /* Oromo */ | 
|---|
| 2021 | return hb_language_from_string ( "om", -1);  /* Oromo */ | 
|---|
| 2022 | case HB_TAG('P','A','S',' '):  /* Pashto */ | 
|---|
| 2023 | return hb_language_from_string ( "ps", -1);  /* Pashto */ | 
|---|
| 2024 | case HB_TAG('P','G','R',' '):  /* Polytonic Greek */ | 
|---|
| 2025 | return hb_language_from_string ( "el-polyton", -1);  /* Modern Greek (1453-); Polytonic Greek */ | 
|---|
| 2026 | case HB_TAG('P','R','O',' '):  /* Provençal / Old Provençal */ | 
|---|
| 2027 | return hb_language_from_string ( "pro", -1);  /* Old Provençal (to 1500) */ | 
|---|
| 2028 | case HB_TAG('Q','U','H',' '):  /* Quechua (Bolivia) */ | 
|---|
| 2029 | return hb_language_from_string ( "quh", -1);  /* South Bolivian Quechua */ | 
|---|
| 2030 | case HB_TAG('Q','V','I',' '):  /* Quechua (Ecuador) */ | 
|---|
| 2031 | return hb_language_from_string ( "qvi", -1);  /* Imbabura Highland Quichua */ | 
|---|
| 2032 | case HB_TAG('Q','W','H',' '):  /* Quechua (Peru) */ | 
|---|
| 2033 | return hb_language_from_string ( "qwh", -1);  /* Huaylas Ancash Quechua */ | 
|---|
| 2034 | case HB_TAG('R','A','J',' '):  /* Rajasthani */ | 
|---|
| 2035 | return hb_language_from_string ( "raj", -1);  /* Rajasthani */ | 
|---|
| 2036 | case HB_TAG('R','O','Y',' '):  /* Romany */ | 
|---|
| 2037 | return hb_language_from_string ( "rom", -1);  /* Romany */ | 
|---|
| 2038 | case HB_TAG('S','Q','I',' '):  /* Albanian */ | 
|---|
| 2039 | return hb_language_from_string ( "sq", -1);  /* Albanian */ | 
|---|
| 2040 | case HB_TAG('S','Y','R',' '):  /* Syriac */ | 
|---|
| 2041 | return hb_language_from_string ( "syr", -1);  /* Syriac */ | 
|---|
| 2042 | case HB_TAG('S','Y','R','E'):  /* Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre') */ | 
|---|
| 2043 | return hb_language_from_string ( "und-Syre", -1);  /* Undetermined; Syriac (Estrangelo variant) */ | 
|---|
| 2044 | case HB_TAG('S','Y','R','J'):  /* Syriac, Western script-variant (equivalent to ISO 15924 'Syrj') */ | 
|---|
| 2045 | return hb_language_from_string ( "und-Syrj", -1);  /* Undetermined; Syriac (Western variant) */ | 
|---|
| 2046 | case HB_TAG('S','Y','R','N'):  /* Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn') */ | 
|---|
| 2047 | return hb_language_from_string ( "und-Syrn", -1);  /* Undetermined; Syriac (Eastern variant) */ | 
|---|
| 2048 | case HB_TAG('T','M','H',' '):  /* Tamashek */ | 
|---|
| 2049 | return hb_language_from_string ( "tmh", -1);  /* Tamashek */ | 
|---|
| 2050 | case HB_TAG('T','N','E',' '):  /* Tundra Nenets */ | 
|---|
| 2051 | return hb_language_from_string ( "yrk", -1);  /* Nenets */ | 
|---|
| 2052 | case HB_TAG('Z','H','H',' '):  /* Chinese, Hong Kong SAR */ | 
|---|
| 2053 | return hb_language_from_string ( "zh-HK", -1);  /* Chinese; Hong Kong */ | 
|---|
| 2054 | case HB_TAG('Z','H','S',' '):  /* Chinese Simplified */ | 
|---|
| 2055 | return hb_language_from_string ( "zh-Hans", -1);  /* Chinese; Han (Simplified variant) */ | 
|---|
| 2056 | case HB_TAG('Z','H','T',' '):  /* Chinese Traditional */ | 
|---|
| 2057 | return hb_language_from_string ( "zh-Hant", -1);  /* Chinese; Han (Traditional variant) */ | 
|---|
| 2058 | default: | 
|---|
| 2059 | return HB_LANGUAGE_INVALID; | 
|---|
| 2060 | } | 
|---|
| 2061 | } | 
|---|
| 2062 |  | 
|---|
| 2063 | #endif /* HB_OT_TAG_TABLE_HH */ | 
|---|
| 2064 |  | 
|---|
| 2065 | /* == End of generated table == */ | 
|---|
| 2066 |  | 
|---|