summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2008-08-18 10:15:24 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2008-08-18 10:15:24 +0000
commitd0145c201c9aa40bbf8adb5fbdd680d76d6b9973 (patch)
treec5e4f1a9d750c245221bb21f956374d0ef2e3a37
parentd5088bc86d781971f06ddd27685b22df536ece6f (diff)
downloadpango-d0145c201c9aa40bbf8adb5fbdd680d76d6b9973.tar.gz
Bug 470895 – Improve OpenType language tag list
2008-08-18 Behdad Esfahbod <behdad@gnome.org> Bug 470895 – Improve OpenType language tag list * pango/pango-ot-tag.c: Update to OpenType 1.5 draft, intersected with ISO639-3 of 2008/08/04. svn path=/trunk/; revision=2691
-rw-r--r--ChangeLog7
-rw-r--r--pango/pango-ot-tag.c610
2 files changed, 416 insertions, 201 deletions
diff --git a/ChangeLog b/ChangeLog
index ef762f05..0f0193a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-18 Behdad Esfahbod <behdad@gnome.org>
+
+ Bug 470895 – Improve OpenType language tag list
+
+ * pango/pango-ot-tag.c: Update to OpenType 1.5 draft, intersected with
+ ISO639-3 of 2008/08/04.
+
2008-08-12 Sven Herzberg <sven@imendio.com>
Bug 547432 – Deprecation of pango_(backend)_font_map_create_context()
diff --git a/pango/pango-ot-tag.c b/pango/pango-ot-tag.c
index c4787d42..c150bd7b 100644
--- a/pango/pango-ot-tag.c
+++ b/pango/pango-ot-tag.c
@@ -181,209 +181,417 @@ typedef struct {
* complete list at:
* http://www.microsoft.com/OpenType/OTSpec/languagetags.htm
*
- * Generated by intersecting the above list with the ISO 639-2 codes
- * and then adjusting manually. A lot of items missing still, feel
- * free to add. Keep sorted for bsearch purpose.
+ * Generated by intersecting the OpenType language tag list from
+ * Draft OpenType 1.5 spec, with with the ISO 639-3 codes from
+ * 2008/08/04, matching on name, and finally adjusted manually.
+ *
+ * Many items still missing. Those are commented out at the end.
+ * Keep sorted for bsearch.
*/
static const LangTag ot_languages[] = {
- {"aa", {"AFR "}},
- {"ab", {"ABK "}},
- {"ady", {"ADY "}},
- {"af", {"AFK "}},
- {"am", {"AMH "}},
- {"ar", {"ARA "}},
- {"as", {"ASM "}},
- {"awa", {"AWA "}},
- {"ay", {"AYM "}},
- {"az", {"AZE "}},
- {"ba", {"BSH "}},
- {"bal", {"BLI "}},
- {"bem", {"BEM "}},
- {"ber", {"BBR "}},
- {"bg", {"BGR "}},
- {"bho", {"BHO "}},
- {"bik", {"BIK "}},
- {"bin", {"EDO "}},
- {"bm", {"BMB "}},
- {"bn", {"BEN "}},
- {"bo", {"TIB "}},
- {"br", {"BRE "}},
- {"brh", {"BRH "}},
- {"ca", {"CAT "}},
- {"ce", {"CHE "}},
- {"ceb", {"CEB "}},
- {"chp", {"CHP "}},
- {"chr", {"CHR "}},
- {"cop", {"COP "}},
- {"cr", {"CRE "}},
- {"crh", {"CRT "}},
- {"cs", {"CSY "}},
- {"cu", {"CSL "}},
- {"cv", {"CHU "}},
- {"cy", {"WEL "}},
- {"da", {"DAN "}},
- {"dar", {"DAR "}},
- {"de", {"DEU "}},
- {"din", {"DNK "}},
- {"doi", {"DGR "}},
- {"dsb", {"LSB "}},
- {"dv", {"DHV "}},
- {"dz", {"DZN "}},
- {"ee", {"EWE "}},
- {"efi", {"EFI "}},
- {"el", {"ELL "}},
- {"en", {"ENG "}},
- {"eo", {"NTO "}},
- {"es", {"ESP "}},
- {"et", {"ETI "}},
- {"eu", {"EUQ "}},
- {"fa", {"FAR "}},
- {"ff", {"FUL "}},
- {"fi", {"FIN "}},
- {"fil", {"PIL "}},
- {"fj", {"FJI "}},
- {"fo", {"FOS "}},
- {"fon", {"FON "}},
- {"fr", {"FRA "}},
- {"fur", {"FRL "}},
- {"fy", {"FRI "}},
- {"ga", {"IRI "}},
- {"gaa", {"GAD "}},
- {"gd", {"GAE "}},
- {"gl", {"GAL "}},
- {"gn", {"GUA "}},
- {"gon", {"GON "}},
- {"gu", {"GUJ "}},
- {"ha", {"HAU "}},
- {"he", {"IWR "}},
- {"hi", {"HIN "}},
- {"hil", {"HIL "}},
- {"hr", {"HRV "}},
- {"hsb", {"USB "}},
- {"ht", {"HAI "}},
- {"hu", {"HUN "}},
- {"hy", {"HYE "}},
- {"id", {"IND "}},
- {"ig", {"IBO "}},
- {"inc", {"SRK "}},
- {"ine", {"KHW "}},
- {"inh", {"ING "}},
- {"is", {"ISL "}},
- {"it", {"ITA "}},
- {"iu", {"INU "}},
- {"ja", {"JAN "}},
- {"jv", {"JAV "}},
- {"ka", {"KAT "}},
- {"kam", {"KMB "}},
- {"kbd", {"KAB "}},
- {"kha", {"KSI "}},
- {"ki", {"KIK "}},
- {"kk", {"KAZ "}},
- {"kl", {"GRN "}},
- {"km", {"KHM "}},
- {"kn", {"KAN "}},
- {"ko", {"KOR "}},
- {"kok", {"KOK "}},
- {"kpe", {"KPL "}},
- {"kr", {"KNR "}},
- {"krl", {"KRL "}},
- {"kru", {"KUU "}},
- {"ks", {"KSH "}},
- {"ku", {"KUR "}},
- {"kum", {"KUM "}},
- {"ky", {"KIR "}},
- {"la", {"LAT "}},
- {"lad", {"JUD "}},
- {"lbj", {"LDK "}},
- {"ln", {"LIN "}},
- {"lo", {"LAO "}},
- {"lt", {"LTH "}},
- {"lv", {"LVI "}},
- {"mai", {"MTH "}},
- {"mdf", {"MOK "}},
- {"men", {"MDE "}},
- {"mg", {"MLG "}},
- {"mi", {"MRI "}},
- {"mk", {"MKD "}},
- {"mkh", {"KUY "}},
- {"ml", {"MLR "}},
- {"mnc", {"MCH "}},
- {"mni", {"MNI "}},
- {"mnk", {"MND "}},
- {"mo", {"MOL "}},
- {"mr", {"MAR "}},
- {"ms", {"MLY "}},
- {"mt", {"MTS "}},
- {"mwr", {"MAW "}},
- {"my", {"BRM "}},
- {"myv", {"ERZ "}},
- {"ne", {"NEP "}},
- {"nl", {"NLD "}},
- {"no", {"NOR "}},
- {"ny", {"CHI "}},
- {"oc", {"PRO "}},
- {"om", {"ORO "}},
- {"or", {"ORI "}},
- {"os", {"OSS "}},
- {"pa", {"PAN "}},
- {"pi", {"PAL "}},
- {"pl", {"PLK "}},
- {"ps", {"PAS "}},
- {"pt", {"PTG "}},
- {"ro", {"ROM "}},
- {"rom", {"ROY "}},
- {"ru", {"RUS "}},
- {"sa", {"SAN "}},
- {"sat", {"SAT "}},
- {"sd", {"SND "}},
- {"sel", {"SEL "}},
- {"sg", {"SGO "}},
- {"shn", {"SHN "}},
- {"si", {"SNH "}},
- {"sid", {"SID "}},
- {"sk", {"SKY "}},
- {"sl", {"SLV "}},
- {"sm", {"SMO "}},
- {"smj", {"LSM "}},
- {"smn", {"ISM "}},
- {"sms", {"SKS "}},
- {"snk", {"SNK "}},
- {"so", {"SML "}},
- {"sq", {"SQI "}},
- {"sr", {"SRB "}},
- {"srr", {"SRR "}},
- {"sv", {"SVE "}},
- {"sw", {"SWK "}},
- {"syr", {"SYR "}},
- {"ta", {"TAM "}},
- {"te", {"TEL "}},
- {"tg", {"TAJ "}},
- {"th", {"THA "}},
- {"ti", {"TGY "}},
- {"tig", {"TGR "}},
- {"tk", {"TKM "}},
- {"tn", {"TNA "}},
- {"tr", {"TRK "}},
- {"ts", {"TSG "}},
- {"tw", {"TWI "}},
- {"udm", {"UDM "}},
- {"ug", {"UYG "}},
- {"uk", {"UKR "}},
- {"ur", {"URD "}},
- {"uz", {"UZB "}},
- {"ve", {"VEN "}},
- {"vi", {"VIT "}},
- {"wo", {"WLF "}},
- {"xal", {"KLM "}},
- {"xh", {"XHS "}},
- {"yi", {"JII "}},
- {"yo", {"YBA "}},
- {"zh-cn", {"ZHS "}},
- {"zh-hk", {"ZHH "}},
- {"zh-mo", {"ZHT "}},
- {"zh-sg", {"ZHS "}},
- {"zh-tw", {"ZHT "}},
- {"zu", {"ZUL "}}
+ {"aa", {"AFR "}}, /* Afar */
+ {"ab", {"ABK "}}, /* Abkhazian */
+ {"abq", {"ABA "}}, /* Abaza */
+ {"ady", {"ADY "}}, /* Adyghe */
+ {"af", {"AFK "}}, /* Afrikaans */
+ {"aiw", {"ARI "}}, /* Aari */
+ {"am", {"AMH "}}, /* Amharic */
+ {"ar", {"ARA "}}, /* Arabic */
+ {"arn", {"MAP "}}, /* Mapudungun */
+ {"as", {"ASM "}}, /* Assamese */
+ {"av", {"AVR "}}, /* Avaric */
+ {"awa", {"AWA "}}, /* Awadhi */
+ {"ay", {"AYM "}}, /* Aymara */
+ {"az", {"AZE "}}, /* Azerbaijani */
+ {"ba", {"BSH "}}, /* Bashkir */
+ {"bal", {"BLI "}}, /* Baluchi */
+ {"bcq", {"BCH "}}, /* Bench */
+ {"bem", {"BEM "}}, /* Bemba (Zambia) */
+ {"bfq", {"BAD "}}, /* Badaga */
+ {"bft", {"BLT "}}, /* Balti */
+ {"bg", {"BGR "}}, /* Bulgarian */
+ {"bhb", {"BHI "}}, /* Bhili */
+ {"bho", {"BHO "}}, /* Bhojpuri */
+ {"bik", {"BIK "}}, /* Bikol */
+ {"bin", {"EDO "}}, /* Bini */
+ {"bm", {"BMB "}}, /* Bambara */
+ {"bn", {"BEN "}}, /* Bengali */
+ {"bo", {"TIB "}}, /* Tibetan */
+ {"br", {"BRE "}}, /* Breton */
+ {"brh", {"BRH "}}, /* Brahui */
+ {"bs", {"BOS "}}, /* Bosnian */
+ {"btb", {"BTI "}}, /* Beti (Cameroon) */
+ {"ca", {"CAT "}}, /* Catalan */
+ {"ce", {"CHE "}}, /* Chechen */
+ {"ceb", {"CEB "}}, /* Cebuano */
+ {"chp", {"CHP "}}, /* Chipewyan */
+ {"chr", {"CHR "}}, /* Cherokee */
+ {"cop", {"COP "}}, /* Coptic */
+ {"cr", {"CRE "}}, /* Cree */
+ {"crh", {"CRT "}}, /* Crimean Tatar */
+ {"crm", {"MCR "}}, /* Moose Cree */
+ {"crx", {"CRR "}}, /* Carrier */
+ {"cs", {"CSY "}}, /* Czech */
+ {"cu", {"CSL "}}, /* Church Slavic */
+ {"cv", {"CHU "}}, /* Chuvash */
+ {"cwd", {"DCR "}}, /* Woods Cree */
+ {"cy", {"WEL "}}, /* Welsh */
+ {"da", {"DAN "}}, /* Danish */
+ {"dap", {"NIS "}}, /* Nisi (India) */
+ {"dar", {"DAR "}}, /* Dargwa */
+ {"de", {"DEU "}}, /* German */
+ {"din", {"DNK "}}, /* Dinka */
+ {"dng", {"DUN "}}, /* Dungan */
+ {"doi", {"DGR "}}, /* Dogri (macrolanguage) */
+ {"dsb", {"LSB "}}, /* Lower Sorbian */
+ {"dv", {"DIV "}}, /* Dhivehi */
+ {"dz", {"DZN "}}, /* Dzongkha */
+ {"ee", {"EWE "}}, /* Ewe */
+ {"efi", {"EFI "}}, /* Efik */
+ {"el", {"ELL "}}, /* Modern Greek (1453-) */
+ {"en", {"ENG "}}, /* English */
+ {"eo", {"NTO "}}, /* Esperanto */
+ {"eot", {"BTI "}}, /* Beti (Côte d'Ivoire) */
+ {"es", {"ESP "}}, /* Spanish */
+ {"et", {"ETI "}}, /* Estonian */
+ {"eu", {"EUQ "}}, /* Basque */
+ {"eve", {"EVN "}}, /* Even */
+ {"evn", {"EVK "}}, /* Evenki */
+ {"fa", {"FAR "}}, /* Persian */
+ {"ff", {"FUL "}}, /* Fulah */
+ {"fi", {"FIN "}}, /* Finnish */
+ {"fil", {"PIL "}}, /* Filipino */
+ {"fj", {"FJI "}}, /* Fijian */
+ {"fo", {"FOS "}}, /* Faroese */
+ {"fon", {"FON "}}, /* Fon */
+ {"fr", {"FRA "}}, /* French */
+ {"fur", {"FRL "}}, /* Friulian */
+ {"fy", {"FRI "}}, /* Western Frisian */
+ {"ga", {"IRI "}}, /* Irish */
+ {"gaa", {"GAD "}}, /* Ga */
+ {"gag", {"GAG "}}, /* Gagauz */
+ {"gbm", {"GAW "}}, /* Garhwali */
+ {"gd", {"GAE "}}, /* Scottish Gaelic */
+ {"gl", {"GAL "}}, /* Galician */
+ {"gld", {"NAN "}}, /* Nanai */
+ {"gn", {"GUA "}}, /* Guarani */
+ {"gon", {"GON "}}, /* Gondi */
+ {"grt", {"GRO "}}, /* Garo */
+ {"gu", {"GUJ "}}, /* Gujarati */
+ {"guk", {"GMZ "}}, /* Gumuz */
+ {"ha", {"HAU "}}, /* Hausa */
+ {"har", {"HRI "}}, /* Harari */
+ {"he", {"IWR "}}, /* Hebrew */
+ {"hi", {"HIN "}}, /* Hindi */
+ {"hil", {"HIL "}}, /* Hiligaynon */
+ {"hoc", {"HO "}}, /* Ho */
+ {"hr", {"HRV "}}, /* Croatian */
+ {"hsb", {"USB "}}, /* Upper Sorbian */
+ {"ht", {"HAI "}}, /* Haitian */
+ {"hu", {"HUN "}}, /* Hungarian */
+ {"hy", {"HYE "}}, /* Armenian */
+ {"id", {"IND "}}, /* Indonesian */
+ {"ig", {"IBO "}}, /* Igbo */
+ {"igb", {"EBI "}}, /* Ebira */
+ {"inh", {"ING "}}, /* Ingush */
+ {"is", {"ISL "}}, /* Icelandic */
+ {"it", {"ITA "}}, /* Italian */
+ {"iu", {"INU "}}, /* Inuktitut */
+ {"ja", {"JAN "}}, /* Japanese */
+ {"jv", {"JAV "}}, /* Javanese */
+ {"ka", {"KAT "}}, /* Georgian */
+ {"kam", {"KMB "}}, /* Kamba (Kenya) */
+ {"kbd", {"KAB "}}, /* Kabardian */
+ {"kdr", {"KRM "}}, /* Karaim */
+ {"kdt", {"KUY "}}, /* Kuy */
+ {"kfr", {"KAC "}}, /* Kachchi */
+ {"kfy", {"KMN "}}, /* Kumaoni */
+ {"kha", {"KSI "}}, /* Khasi */
+ {"khw", {"KHW "}}, /* Khowar */
+ {"ki", {"KIK "}}, /* Kikuyu */
+ {"kk", {"KAZ "}}, /* Kazakh */
+ {"kl", {"GRN "}}, /* Kalaallisut */
+ {"kln", {"KAL "}}, /* Kalenjin */
+ {"km", {"KHM "}}, /* Central Khmer */
+ {"kmw", {"KMO "}}, /* Komo (Democratic Republic of Congo) */
+ {"kn", {"KAN "}}, /* Kannada */
+ {"ko", {"KOR "}}, /* Korean */
+ {"koi", {"KOP "}}, /* Komi-Permyak */
+ {"kok", {"KOK "}}, /* Konkani (macrolanguage) */
+ {"kpe", {"KPL "}}, /* Kpelle */
+ {"kpv", {"KOZ "}}, /* Komi-Zyrian */
+ {"kpy", {"KYK "}}, /* Koryak */
+ {"kqy", {"KRT "}}, /* Koorete */
+ {"kr", {"KNR "}}, /* Kanuri */
+ {"kri", {"KRI "}}, /* Krio */
+ {"krl", {"KRL "}}, /* Karelian */
+ {"kru", {"KUU "}}, /* Kurukh */
+ {"ks", {"KSH "}}, /* Kashmiri */
+ {"ku", {"KUR "}}, /* Kurdish */
+ {"kum", {"KUM "}}, /* Kumyk */
+ {"kvd", {"KUI "}}, /* Kui (Indonesia) */
+ {"kxu", {"KUI "}}, /* Kui (India) */
+ {"ky", {"KIR "}}, /* Kirghiz */
+ {"la", {"LAT "}}, /* Latin */
+ {"lad", {"JUD "}}, /* Ladino */
+ {"lb", {"LTZ "}}, /* Luxembourgish */
+ {"lbe", {"LAK "}}, /* Lak */
+ {"lbj", {"LDK "}}, /* Ladakhi */
+ {"lif", {"LMB "}}, /* Limbu */
+ {"lld", {"LAD "}}, /* Ladin */
+ {"ln", {"LIN "}}, /* Lingala */
+ {"lo", {"LAO "}}, /* Lao */
+ {"lt", {"LTH "}}, /* Lithuanian */
+ {"luo", {"LUO "}}, /* Luo (Kenya and Tanzania) */
+ {"luw", {"LUO "}}, /* Luo (Cameroon) */
+ {"lv", {"LVI "}}, /* Latvian */
+ {"lzz", {"LAZ "}}, /* Laz */
+ {"mai", {"MTH "}}, /* Maithili */
+ {"mdc", {"MLE "}}, /* Male (Papua New Guinea) */
+ {"mdf", {"MOK "}}, /* Moksha */
+ {"mdy", {"MLE "}}, /* Male (Ethiopia) */
+ {"men", {"MDE "}}, /* Mende (Sierra Leone) */
+ {"mg", {"MLG "}}, /* Malagasy */
+ {"mi", {"MRI "}}, /* Maori */
+ {"mk", {"MKD "}}, /* Macedonian */
+ {"ml", {"MLR "}}, /* Malayalam */
+ {"mn", {"MNG "}}, /* Mongolian */
+ {"mnc", {"MCH "}}, /* Manchu */
+ {"mni", {"MNI "}}, /* Manipuri */
+ {"mnk", {"MND "}}, /* Mandinka */
+ {"mns", {"MAN "}}, /* Mansi */
+ {"mnw", {"MON "}}, /* Mon */
+ {"mo", {"MOL "}}, /* Moldavian */
+ {"moh", {"MOH "}}, /* Mohawk */
+ {"mpe", {"MAJ "}}, /* Majang */
+ {"mr", {"MAR "}}, /* Marathi */
+ {"ms", {"MLY "}}, /* Malay (macrolanguage) */
+ {"mt", {"MTS "}}, /* Maltese */
+ {"mwr", {"MAW "}}, /* Marwari */
+ {"my", {"BRM "}}, /* Burmese */
+ {"mym", {"MEN "}}, /* Me'en */
+ {"myv", {"ERZ "}}, /* Erzya */
+ {"nco", {"SIB "}}, /* Sibe */
+ {"ne", {"NEP "}}, /* Nepali */
+ {"new", {"NEW "}}, /* Newari */
+ {"ng", {"NDG "}}, /* Ndonga */
+ {"ngl", {"LMW "}}, /* Lomwe */
+ {"niu", {"NIU "}}, /* Niuean */
+ {"niv", {"GIL "}}, /* Gilyak */
+ {"nl", {"NLD "}}, /* Dutch */
+ {"nn", {"NYN "}}, /* Norwegian Nynorsk */
+ {"no", {"NOR "}}, /* Norwegian */
+ {"nog", {"NOG "}}, /* Nogai */
+ {"nqo", {"NKO "}}, /* N'Ko */
+ {"nsk", {"NAS "}}, /* Naskapi */
+ {"ny", {"CHI "}}, /* Nyanja */
+ {"oc", {"OCI "}}, /* Occitan (post 1500) */
+ {"oc", {"PRO "}}, /* Occitan (post 1500) */
+ {"oj", {"OJB "}}, /* Ojibwa */
+ {"om", {"ORO "}}, /* Oromo */
+ {"or", {"ORI "}}, /* Oriya */
+ {"os", {"OSS "}}, /* Ossetian */
+ {"pa", {"PAN "}}, /* Panjabi */
+ {"pi", {"PAL "}}, /* Pali */
+ {"pl", {"PLK "}}, /* Polish */
+ {"plp", {"PAP "}}, /* Palpa */
+ {"prs", {"DRI "}}, /* Dari */
+ {"ps", {"PAS "}}, /* Pushto */
+ {"pt", {"PTG "}}, /* Portuguese */
+ {"raj", {"RAJ "}}, /* Rajasthani */
+ {"ria", {"RIA "}}, /* Riang (India) */
+ {"ril", {"RIA "}}, /* Riang (Myanmar) */
+ {"ro", {"ROM "}}, /* Romanian */
+ {"rom", {"ROY "}}, /* Romany */
+ {"ru", {"RUS "}}, /* Russian */
+ {"rue", {"RSY "}}, /* Rusyn */
+ {"sa", {"SAN "}}, /* Sanskrit */
+ {"sah", {"YAK "}}, /* Yakut */
+ {"sat", {"SAT "}}, /* Santali */
+ {"sck", {"SAD "}}, /* Sadri */
+ {"sd", {"SND "}}, /* Sindhi */
+ {"se", {"NSM "}}, /* Northern Sami */
+ {"seh", {"SNA "}}, /* Sena */
+ {"sel", {"SEL "}}, /* Selkup */
+ {"sg", {"SGO "}}, /* Sango */
+ {"shn", {"SHN "}}, /* Shan */
+ {"si", {"SNH "}}, /* Sinhala */
+ {"sid", {"SID "}}, /* Sidamo */
+ {"sjd", {"KSM "}}, /* Kildin Sami */
+ {"sk", {"SKY "}}, /* Slovak */
+ {"skr", {"SRK "}}, /* Seraiki */
+ {"sl", {"SLV "}}, /* Slovenian */
+ {"sm", {"SMO "}}, /* Samoan */
+ {"sma", {"SSM "}}, /* Southern Sami */
+ {"smj", {"LSM "}}, /* Lule Sami */
+ {"smn", {"ISM "}}, /* Inari Sami */
+ {"sms", {"SKS "}}, /* Skolt Sami */
+ {"snk", {"SNK "}}, /* Soninke */
+ {"so", {"SML "}}, /* Somali */
+ {"sq", {"SQI "}}, /* Albanian */
+ {"sr", {"SRB "}}, /* Serbian */
+ {"srr", {"SRR "}}, /* Serer */
+ {"suq", {"SUR "}}, /* Suri */
+ {"sv", {"SVE "}}, /* Swedish */
+ {"sva", {"SVA "}}, /* Svan */
+ {"sw", {"SWK "}}, /* Swahili (macrolanguage) */
+ {"swb", {"CMR "}}, /* Comorian */
+ {"syr", {"SYR "}}, /* Syriac */
+ {"ta", {"TAM "}}, /* Tamil */
+ {"tcy", {"TUL "}}, /* Tulu */
+ {"te", {"TEL "}}, /* Telugu */
+ {"tg", {"TAJ "}}, /* Tajik */
+ {"th", {"THA "}}, /* Thai */
+ {"ti", {"TGY "}}, /* Tigrinya */
+ {"tig", {"TGR "}}, /* Tigre */
+ {"tk", {"TKM "}}, /* Turkmen */
+ {"tn", {"TNA "}}, /* Tswana */
+ {"tnz", {"TNG "}}, /* Tonga (Thailand) */
+ {"to", {"TNG "}}, /* Tonga (Tonga Islands) */
+ {"tog", {"TNG "}}, /* Tonga (Nyasa) */
+ {"toi", {"TNG "}}, /* Tonga (Zambia) */
+ {"tr", {"TRK "}}, /* Turkish */
+ {"ts", {"TSG "}}, /* Tsonga */
+ {"tt", {"TAT "}}, /* Tatar */
+ {"tw", {"TWI "}}, /* Twi */
+ {"ty", {"THT "}}, /* Tahitian */
+ {"udm", {"UDM "}}, /* Udmurt */
+ {"ug", {"UYG "}}, /* Uighur */
+ {"uk", {"UKR "}}, /* Ukrainian */
+ {"unr", {"MUN "}}, /* Mundari */
+ {"ur", {"URD "}}, /* Urdu */
+ {"uz", {"UZB "}}, /* Uzbek */
+ {"ve", {"VEN "}}, /* Venda */
+ {"vi", {"VIT "}}, /* Vietnamese */
+ {"wbm", {"WA "}}, /* Wa */
+ {"wbr", {"WAG "}}, /* Wagdi */
+ {"wo", {"WLF "}}, /* Wolof */
+ {"xal", {"KLM "}}, /* Kalmyk */
+ {"xh", {"XHS "}}, /* Xhosa */
+ {"xom", {"KMO "}}, /* Komo (Sudan) */
+ {"xsl", {"SSL "}}, /* South Slavey */
+ {"yi", {"JII "}}, /* Yiddish */
+ {"yo", {"YBA "}}, /* Yoruba */
+ {"yso", {"NIS "}}, /* Nisi (China) */
+ {"zh-cn", {"ZHS "}}, /* Chinese (China) */
+ {"zh-hk", {"ZHH "}}, /* Chinese (Hong Kong) */
+ {"zh-mo", {"ZHT "}}, /* Chinese (Macao) */
+ {"zh-sg", {"ZHS "}}, /* Chinese (Singapore) */
+ {"zh-tw", {"ZHT "}}, /* Chinese (Taiwan) */
+ {"zne", {"ZND "}}, /* Zande */
+ {"zu", {"ZUL "}} /* Zulu */
+
+ /* I couldn't find the language id for these */
+
+/*{"??", {"AGW "}},*/ /* Agaw */
+/*{"??", {"ALS "}},*/ /* Alsatian */
+/*{"??", {"ALT "}},*/ /* Altai */
+/*{"??", {"ARK "}},*/ /* Arakanese */
+/*{"??", {"ATH "}},*/ /* Athapaskan */
+/*{"??", {"BAG "}},*/ /* Baghelkhandi */
+/*{"??", {"BAL "}},*/ /* Balkar */
+/*{"??", {"BAU "}},*/ /* Baule */
+/*{"??", {"BBR "}},*/ /* Berber */
+/*{"??", {"BCR "}},*/ /* Bible Cree */
+/*{"??", {"BEL "}},*/ /* Belarussian */
+/*{"??", {"BIL "}},*/ /* Bilen */
+/*{"??", {"BKF "}},*/ /* Blackfoot */
+/*{"??", {"BLN "}},*/ /* Balante */
+/*{"??", {"BML "}},*/ /* Bamileke */
+/*{"??", {"BRI "}},*/ /* Braj Bhasha */
+/*{"??", {"CHG "}},*/ /* Chaha Gurage */
+/*{"??", {"CHH "}},*/ /* Chattisgarhi */
+/*{"??", {"CHK "}},*/ /* Chukchi */
+/*{"??", {"DJR "}},*/ /* Djerma */
+/*{"??", {"DNG "}},*/ /* Dangme */
+/*{"??", {"ECR "}},*/ /* Eastern Cree */
+/*{"??", {"FAN "}},*/ /* French Antillean */
+/*{"??", {"FLE "}},*/ /* Flemish */
+/*{"??", {"FNE "}},*/ /* Forest Nenets */
+/*{"??", {"FTA "}},*/ /* Futa */
+/*{"??", {"GAR "}},*/ /* Garshuni */
+/*{"??", {"GEZ "}},*/ /* Ge'ez */
+/*{"??", {"HAL "}},*/ /* Halam */
+/*{"??", {"HAR "}},*/ /* Harauti */
+/*{"??", {"HAW "}},*/ /* Hawaiin */
+/*{"??", {"HBN "}},*/ /* Hammer-Banna */
+/*{"??", {"HMA "}},*/ /* High Mari */
+/*{"??", {"HND "}},*/ /* Hindko */
+/*{"??", {"IJO "}},*/ /* Ijo */
+/*{"??", {"ILO "}},*/ /* Ilokano */
+/*{"??", {"IRT "}},*/ /* Irish Traditional */
+/*{"??", {"JUL "}},*/ /* Jula */
+/*{"??", {"KAR "}},*/ /* Karachay */
+/*{"??", {"KEB "}},*/ /* Kebena */
+/*{"??", {"KGE "}},*/ /* Khutsuri Georgian */
+/*{"??", {"KHA "}},*/ /* Khakass */
+/*{"??", {"KHK "}},*/ /* Khanty-Kazim */
+/*{"??", {"KHS "}},*/ /* Khanty-Shurishkar */
+/*{"??", {"KHV "}},*/ /* Khanty-Vakhi */
+/*{"??", {"KIS "}},*/ /* Kisii */
+/*{"??", {"KKN "}},*/ /* Kokni */
+/*{"??", {"KMS "}},*/ /* Komso */
+/*{"??", {"KOD "}},*/ /* Kodagu */
+/*{"??", {"KOH "}},*/ /* Korean Old Hangul */
+/*{"??", {"KON "}},*/ /* Kikongo */
+/*{"??", {"KRK "}},*/ /* Karakalpak */
+/*{"??", {"KRN "}},*/ /* Karen */
+/*{"??", {"KUL "}},*/ /* Kulvi */
+/*{"??", {"LAH "}},*/ /* Lahuli */
+/*{"??", {"LAM "}},*/ /* Lambani */
+/*{"??", {"LCR "}},*/ /* L-Cree */
+/*{"??", {"LEZ "}},*/ /* Lezgi */
+/*{"??", {"LMA "}},*/ /* Low Mari */
+/*{"??", {"LUB "}},*/ /* Luba */
+/*{"??", {"LUG "}},*/ /* Luganda */
+/*{"??", {"LUH "}},*/ /* Luhya */
+/*{"??", {"MAK "}},*/ /* Makua */
+/*{"??", {"MAL "}},*/ /* Malayalam Traditional */
+/*{"??", {"MBN "}},*/ /* Mbundu */
+/*{"??", {"MIZ "}},*/ /* Mizo */
+/*{"??", {"MLN "}},*/ /* Malinke */
+/*{"??", {"MNK "}},*/ /* Maninka */
+/*{"??", {"MNX "}},*/ /* Manx Gaelic */
+/*{"??", {"MOR "}},*/ /* Moroccan */
+/*{"??", {"NAG "}},*/ /* Naga-Assamese */
+/*{"??", {"NCR "}},*/ /* N-Cree */
+/*{"??", {"NDB "}},*/ /* Ndebele */
+/*{"??", {"NGR "}},*/ /* Nagari */
+/*{"??", {"NHC "}},*/ /* Norway House Cree */
+/*{"??", {"NKL "}},*/ /* Nkole */
+/*{"??", {"NTA "}},*/ /* Northern Tai */
+/*{"??", {"OCR "}},*/ /* Oji-Cree */
+/*{"??", {"PAA "}},*/ /* Palestinian Aramaic */
+/*{"??", {"PGR "}},*/ /* Polytonic Greek */
+/*{"??", {"PLG "}},*/ /* Palaung */
+/*{"??", {"QIN "}},*/ /* Chin */
+/*{"??", {"RBU "}},*/ /* Russian Buriat */
+/*{"??", {"RCR "}},*/ /* R-Cree */
+/*{"??", {"RMS "}},*/ /* Rhaeto-Romanic */
+/*{"??", {"RUA "}},*/ /* Ruanda */
+/*{"??", {"SAY "}},*/ /* Sayisi */
+/*{"??", {"SEK "}},*/ /* Sekota */
+/*{"??", {"SIG "}},*/ /* Silte Gurage */
+/*{"??", {"SLA "}},*/ /* Slavey */
+/*{"??", {"SOG "}},*/ /* Sodo Gurage */
+/*{"??", {"SOT "}},*/ /* Sotho */
+/*{"??", {"SWA "}},*/ /* Swadaya Aramaic */
+/*{"??", {"SWZ "}},*/ /* Swazi */
+/*{"??", {"SXT "}},*/ /* Sutu */
+/*{"??", {"TAB "}},*/ /* Tabasaran */
+/*{"??", {"TCR "}},*/ /* TH-Cree */
+/*{"??", {"TGN "}},*/ /* Tongan */
+/*{"??", {"TMN "}},*/ /* Temne */
+/*{"??", {"TNE "}},*/ /* Tundra Nenets */
+/*{"??", {"TOD "}},*/ /* Todo */
+/*{"??", {"TUA "}},*/ /* Turoyo Aramaic */
+/*{"??", {"TUV "}},*/ /* Tuvin */
+/*{"??", {"WCR "}},*/ /* West-Cree */
+/*{"??", {"XBD "}},*/ /* Tai Lue */
+/*{"??", {"YCR "}},*/ /* Y-Cree */
+/*{"??", {"YIC "}},*/ /* Yi Classic */
+/*{"??", {"YIM "}},*/ /* Yi Modern */
+/*{"??", {"ZHP "}},*/ /* Chinese Phonetic */
};
static int