MythTV  0.26-pre
iso639.cpp
Go to the documentation of this file.
00001 // -*- Mode: c++ -*-
00002 // Copyright (c) 2003-2004, Daniel Thor Kristjansson
00003 
00004 #include "iso639.h"
00005 #include "mythcorecontext.h"
00006 
00007 QMap<int, QString>    _iso639_key_to_english_name;
00008 static QMap<int, int> _iso639_key2_to_key3;
00009 static QMap<int, int> _iso639_key3_to_canonical_key3;
00010 static QStringList    _languages;
00011 static vector<int>    _language_keys;
00012 
00013 /* Note: this file takes a long time to compile. **/
00014 
00015 static int createCodeToEnglishNamesMap(QMap<int, QString>& names);
00016 static int createCode2ToCode3Map(QMap<int, int>& codemap);
00017 static int createCodeToCanonicalCodeMap(QMap<int, int>& canonical);
00018 
00019 void iso639_clear_language_list(void)
00020 {
00021     _languages.clear();
00022     _language_keys.clear();
00023 }
00024 
00030 QStringList iso639_get_language_list(void)
00031 {
00032     if (_languages.empty())
00033     {
00034         for (uint i = 0; true; i++)
00035         {
00036             QString q = QString("ISO639Language%1").arg(i);
00037             QString lang = gCoreContext->GetSetting(q, "").toLower();
00038             if (lang.isEmpty())
00039                 break;
00040             _languages << lang;
00041         }
00042         if (_languages.empty())
00043         {
00044             QString s3 = iso639_str2_to_str3(
00045                                         gCoreContext->GetLanguage().toLower());
00046             if (!s3.isEmpty())
00047                 _languages << s3;
00048         }
00049     }
00050     return _languages;
00051 }
00052 
00053 vector<int> iso639_get_language_key_list(void)
00054 {
00055     if (_language_keys.empty())
00056     {
00057         const QStringList list = iso639_get_language_list();
00058         QStringList::const_iterator it = list.begin();
00059         for (; it != list.end(); ++it)
00060             _language_keys.push_back(iso639_str3_to_key(*it));
00061     }
00062     return _language_keys;
00063 }
00064 
00065 QString iso639_str2_to_str3(const QString &str2)
00066 {
00067     int key2 = iso639_str2_to_key2(str2.toAscii().constData());
00068     int key3 = 0;
00069     if (_iso639_key2_to_key3.contains(key2))
00070         key3 = _iso639_key2_to_key3[key2];
00071     if (key3)
00072         return iso639_key_to_str3(key3);
00073     return "und";
00074 }
00075 
00076 static QString iso639_Alpha3_toName(const unsigned char *iso639_2)
00077 {
00078     int alpha3 = iso639_str3_to_key(iso639_2);
00079     alpha3 = iso639_key_to_canonical_key(alpha3);
00080 
00081     if (_iso639_key_to_english_name.contains(alpha3))
00082         return _iso639_key_to_english_name[alpha3];
00083 
00084     return "Unknown";
00085 }
00086 
00087 static QString iso639_Alpha2_toName(const unsigned char *iso639_1)
00088 {
00089     int alpha2 = iso639_str2_to_key2(iso639_1);
00090 
00091     if (_iso639_key2_to_key3.contains(alpha2))
00092         return _iso639_key_to_english_name[_iso639_key2_to_key3[alpha2]];
00093 
00094     return "Unknown";
00095 }
00096 
00097 QString iso639_str_toName(const unsigned char *iso639)
00098 {
00099     if (strlen((const char *)iso639) == 2)
00100         return iso639_Alpha2_toName(iso639);
00101     else if (strlen((const char *)iso639) == 3)
00102         return iso639_Alpha3_toName(iso639);
00103 
00104     return "Unknown";
00105 }
00106 
00107 QString iso639_key_toName(int iso639_2)
00108 {
00109     QMap<int, QString>::const_iterator it;
00110     it = _iso639_key_to_english_name.find(iso639_2);
00111     if (it != _iso639_key_to_english_name.end())
00112         return *it;
00113 
00114     return "Unknown";
00115 }
00116 
00117 int iso639_key_to_canonical_key(int iso639_2)
00118 {
00119     QMap<int, int>::const_iterator it;
00120     it = _iso639_key3_to_canonical_key3.find(iso639_2);
00121 
00122     if (it != _iso639_key3_to_canonical_key3.end())
00123         return *it;
00124     return iso639_2;
00125 }
00126 
00127 int dummy_createCodeToEnglishNamesMap =
00128     createCodeToEnglishNamesMap(_iso639_key_to_english_name);
00129 
00130 int dummy_createCode2ToCode3Map =
00131     createCode2ToCode3Map(_iso639_key2_to_key3);
00132 
00133 int dummy_createCodeToCanonicalCodeMap =
00134     createCodeToCanonicalCodeMap(_iso639_key3_to_canonical_key3);
00135 
00136 static int createCodeToCanonicalCodeMap(QMap<int, int>& canonical)
00137 {
00138     canonical[iso639_str3_to_key("sqi")] = iso639_str3_to_key("alb");
00139     canonical[iso639_str3_to_key("hye")] = iso639_str3_to_key("arm");
00140     canonical[iso639_str3_to_key("eus")] = iso639_str3_to_key("baq");
00141     canonical[iso639_str3_to_key("mya")] = iso639_str3_to_key("bur");
00142     canonical[iso639_str3_to_key("zho")] = iso639_str3_to_key("chi");
00143     canonical[iso639_str3_to_key("ces")] = iso639_str3_to_key("cze");
00144     canonical[iso639_str3_to_key("nld")] = iso639_str3_to_key("dut");
00145     canonical[iso639_str3_to_key("fra")] = iso639_str3_to_key("fre");
00146     canonical[iso639_str3_to_key("kat")] = iso639_str3_to_key("geo");
00147     canonical[iso639_str3_to_key("deu")] = iso639_str3_to_key("ger");
00148     canonical[iso639_str3_to_key("ell")] = iso639_str3_to_key("gre");
00149     canonical[iso639_str3_to_key("isl")] = iso639_str3_to_key("ice");
00150     canonical[iso639_str3_to_key("mkd")] = iso639_str3_to_key("mac");
00151     canonical[iso639_str3_to_key("mri")] = iso639_str3_to_key("mao");
00152     canonical[iso639_str3_to_key("msa")] = iso639_str3_to_key("may");
00153     canonical[iso639_str3_to_key("fas")] = iso639_str3_to_key("per");
00154     canonical[iso639_str3_to_key("ron")] = iso639_str3_to_key("rum");
00155     canonical[iso639_str3_to_key("srp")] = iso639_str3_to_key("scc");
00156     canonical[iso639_str3_to_key("hrv")] = iso639_str3_to_key("scr");
00157     canonical[iso639_str3_to_key("slk")] = iso639_str3_to_key("slo");
00158     canonical[iso639_str3_to_key("bod")] = iso639_str3_to_key("tib");
00159     canonical[iso639_str3_to_key("cym")] = iso639_str3_to_key("wel");
00160     return 0;
00161 }
00162 
00174 static int createCodeToEnglishNamesMap(QMap<int, QString>& names)
00175 {
00176   names[iso639_str3_to_key("aar")] = QString("Afar");
00177   names[iso639_str3_to_key("abk")] = QString("Abkhazian");
00178   names[iso639_str3_to_key("ace")] = QString("Achinese");
00179   names[iso639_str3_to_key("ach")] = QString("Acoli");
00180   names[iso639_str3_to_key("ada")] = QString("Adangme");
00181   names[iso639_str3_to_key("ady")] = QString("Adyghe; Adygei");
00182   names[iso639_str3_to_key("afa")] = QString("Afro-Asiatic (Other)");
00183   names[iso639_str3_to_key("afh")] = QString("Afrihili");
00184   names[iso639_str3_to_key("afr")] = QString("Afrikaans");
00185   names[iso639_str3_to_key("aka")] = QString("Akan");
00186   names[iso639_str3_to_key("akk")] = QString("Akkadian");
00187   names[iso639_str3_to_key("alb")] = QString("Albanian"); // sqi
00188   names[iso639_str3_to_key("ale")] = QString("Aleut");
00189   names[iso639_str3_to_key("alg")] = QString("Algonquian languages");
00190   names[iso639_str3_to_key("amh")] = QString("Amharic");
00191   names[iso639_str3_to_key("ang")] = QString("Old English (ca.450-1100)");
00192   names[iso639_str3_to_key("apa")] = QString("Apache languages");
00193   names[iso639_str3_to_key("ara")] = QString("Arabic");
00194   names[iso639_str3_to_key("arc")] = QString("Aramaic");
00195   names[iso639_str3_to_key("arg")] = QString("Aragonese");
00196   names[iso639_str3_to_key("arm")] = QString("Armenian"); // hye
00197   names[iso639_str3_to_key("arn")] = QString("Araucanian");
00198   names[iso639_str3_to_key("arp")] = QString("Arapaho");
00199   names[iso639_str3_to_key("art")] = QString("Artificial (Other)");
00200   names[iso639_str3_to_key("arw")] = QString("Arawak");
00201   names[iso639_str3_to_key("asm")] = QString("Assamese");
00202   names[iso639_str3_to_key("ast")] = QString("Asturian; Bable");
00203   names[iso639_str3_to_key("ath")] = QString("Athapascan languages");
00204   names[iso639_str3_to_key("aus")] = QString("Australian languages");
00205   names[iso639_str3_to_key("ava")] = QString("Avaric");
00206   names[iso639_str3_to_key("ave")] = QString("Avestan");
00207   names[iso639_str3_to_key("awa")] = QString("Awadhi");
00208   names[iso639_str3_to_key("aym")] = QString("Aymara");
00209   names[iso639_str3_to_key("aze")] = QString("Azerbaijani");
00210   names[iso639_str3_to_key("bad")] = QString("Banda");
00211   names[iso639_str3_to_key("bai")] = QString("Bamileke languages");
00212   names[iso639_str3_to_key("bak")] = QString("Bashkir");
00213   names[iso639_str3_to_key("bal")] = QString("Baluchi");
00214   names[iso639_str3_to_key("bam")] = QString("Bambara");
00215   names[iso639_str3_to_key("ban")] = QString("Balinese");
00216   names[iso639_str3_to_key("baq")] = QString("Basque"); // eus
00217   names[iso639_str3_to_key("bas")] = QString("Basa");
00218   names[iso639_str3_to_key("bat")] = QString("Baltic (Other)");
00219   names[iso639_str3_to_key("bej")] = QString("Beja");
00220   names[iso639_str3_to_key("bel")] = QString("Belarusian");
00221   names[iso639_str3_to_key("bem")] = QString("Bemba");
00222   names[iso639_str3_to_key("ben")] = QString("Bengali");
00223   names[iso639_str3_to_key("ber")] = QString("Berber (Other)");
00224   names[iso639_str3_to_key("bho")] = QString("Bhojpuri");
00225   names[iso639_str3_to_key("bih")] = QString("Bihari");
00226   names[iso639_str3_to_key("bik")] = QString("Bikol");
00227   names[iso639_str3_to_key("bin")] = QString("Bini");
00228   names[iso639_str3_to_key("bis")] = QString("Bislama");
00229   names[iso639_str3_to_key("bla")] = QString("Siksika");
00230   names[iso639_str3_to_key("bnt")] = QString("Bantu (Other)");
00231   names[iso639_str3_to_key("bos")] = QString("Bosnian");
00232   names[iso639_str3_to_key("bra")] = QString("Braj");
00233   names[iso639_str3_to_key("bre")] = QString("Breton");
00234   names[iso639_str3_to_key("btk")] = QString("Batak (Indonesia)");
00235   names[iso639_str3_to_key("bua")] = QString("Buriat");
00236   names[iso639_str3_to_key("bug")] = QString("Buginese");
00237   names[iso639_str3_to_key("bul")] = QString("Bulgarian");
00238   names[iso639_str3_to_key("bur")] = QString("Burmese");
00239   names[iso639_str3_to_key("bur")] = QString("Burmese");
00240   names[iso639_str3_to_key("byn")] = QString("Blin; Bilin");
00241   names[iso639_str3_to_key("cad")] = QString("Caddo");
00242   names[iso639_str3_to_key("cai")] = QString("Central American Indian (Other)");
00243   names[iso639_str3_to_key("car")] = QString("Carib");
00244   names[iso639_str3_to_key("cat")] = QString("Catalan; Valencian");
00245   names[iso639_str3_to_key("cau")] = QString("Caucasian (Other)");
00246   names[iso639_str3_to_key("ceb")] = QString("Cebuano");
00247   names[iso639_str3_to_key("cel")] = QString("Celtic (Other)");
00248   names[iso639_str3_to_key("cha")] = QString("Chamorro");
00249   names[iso639_str3_to_key("chb")] = QString("Chibcha");
00250   names[iso639_str3_to_key("che")] = QString("Chechen");
00251   names[iso639_str3_to_key("chg")] = QString("Chagatai");
00252   names[iso639_str3_to_key("chi")] = QString("Chinese"); // zho
00253   names[iso639_str3_to_key("chk")] = QString("Chuukese");
00254   names[iso639_str3_to_key("chm")] = QString("Mari");
00255   names[iso639_str3_to_key("chn")] = QString("Chinook jargon");
00256   names[iso639_str3_to_key("cho")] = QString("Choctaw");
00257   names[iso639_str3_to_key("chp")] = QString("Chipewyan");
00258   names[iso639_str3_to_key("chr")] = QString("Cherokee");
00259   names[iso639_str3_to_key("chu")] = QString("Church Slavic; Old Slavonic").append(
00260       QString("; Church Slavonic; Old Bulgarian; Old Church Slavonic"));
00261   names[iso639_str3_to_key("chv")] = QString("Chuvash");
00262   names[iso639_str3_to_key("chy")] = QString("Cheyenne");
00263   names[iso639_str3_to_key("cmc")] = QString("Chamic languages");
00264   names[iso639_str3_to_key("cop")] = QString("Coptic");
00265   names[iso639_str3_to_key("cor")] = QString("Cornish");
00266   names[iso639_str3_to_key("cos")] = QString("Corsican");
00267   names[iso639_str3_to_key("cpe")] = QString("Creoles and pidgins, English based (Other)");
00268   names[iso639_str3_to_key("cpf")] = QString("Creoles and pidgins, French-based (Other)");
00269   names[iso639_str3_to_key("cpp")] = QString("Creoles and pidgins, Portuguese-based (Other)");
00270   names[iso639_str3_to_key("cre")] = QString("Cree");
00271   names[iso639_str3_to_key("crh")] = QString("Crimean Tatar; Crimean Turkish");
00272   names[iso639_str3_to_key("crp")] = QString("Creoles and pidgins (Other)");
00273   names[iso639_str3_to_key("csb")] = QString("Kashubian");
00274   names[iso639_str3_to_key("cus")] = QString("Cushitic (Other)");
00275   names[iso639_str3_to_key("cze")] = QString("Czech"); // ces
00276   names[iso639_str3_to_key("dak")] = QString("Dakota");
00277   names[iso639_str3_to_key("dan")] = QString("Danish");
00278   names[iso639_str3_to_key("dar")] = QString("Dargwa");
00279   names[iso639_str3_to_key("day")] = QString("Dayak");
00280   names[iso639_str3_to_key("del")] = QString("Delaware");
00281   names[iso639_str3_to_key("den")] = QString("Slave (Athapascan)");
00282   names[iso639_str3_to_key("dgr")] = QString("Dogrib");
00283   names[iso639_str3_to_key("din")] = QString("Dinka");
00284   names[iso639_str3_to_key("div")] = QString("Divehi");
00285   names[iso639_str3_to_key("doi")] = QString("Dogri");
00286   names[iso639_str3_to_key("dra")] = QString("Dravidian (Other)");
00287   names[iso639_str3_to_key("dsb")] = QString("Lower Sorbian");
00288   names[iso639_str3_to_key("dua")] = QString("Duala");
00289   names[iso639_str3_to_key("dum")] = QString("Middle Dutch (ca.1050-1350)");
00290   names[iso639_str3_to_key("dut")] = QString("Dutch; Flemish"); // nld
00291   names[iso639_str3_to_key("dyu")] = QString("Dyula");
00292   names[iso639_str3_to_key("dzo")] = QString("Dzongkha");
00293   names[iso639_str3_to_key("efi")] = QString("Efik");
00294   names[iso639_str3_to_key("egy")] = QString("Egyptian (Ancient)");
00295   names[iso639_str3_to_key("eka")] = QString("Ekajuk");
00296   names[iso639_str3_to_key("elx")] = QString("Elamite");
00297   names[iso639_str3_to_key("eng")] = QString("English");
00298   names[iso639_str3_to_key("enm")] = QString("Middle English (1100-1500)");
00299   names[iso639_str3_to_key("epo")] = QString("Esperanto");
00300   names[iso639_str3_to_key("est")] = QString("Estonian");
00301   names[iso639_str3_to_key("ewe")] = QString("Ewe");
00302   names[iso639_str3_to_key("ewo")] = QString("Ewondo");
00303   names[iso639_str3_to_key("fan")] = QString("Fang");
00304   names[iso639_str3_to_key("fao")] = QString("Faroese");
00305   names[iso639_str3_to_key("fat")] = QString("Fanti");
00306   names[iso639_str3_to_key("fij")] = QString("Fijian");
00307   names[iso639_str3_to_key("fin")] = QString("Finnish");
00308   names[iso639_str3_to_key("fiu")] = QString("Finno-Ugrian (Other)");
00309   names[iso639_str3_to_key("fon")] = QString("Fon");
00310   names[iso639_str3_to_key("fre")] = QString("French");
00311   names[iso639_str3_to_key("frm")] = QString("Middle French (ca.1400-1800)");
00312   names[iso639_str3_to_key("fro")] = QString("Old French (842-ca.1400)");
00313   names[iso639_str3_to_key("fry")] = QString("Frisian");
00314   names[iso639_str3_to_key("ful")] = QString("Fulah");
00315   names[iso639_str3_to_key("fur")] = QString("Friulian");
00316   names[iso639_str3_to_key("gaa")] = QString("Ga");
00317   names[iso639_str3_to_key("gay")] = QString("Gayo");
00318   names[iso639_str3_to_key("gba")] = QString("Gbaya");
00319   names[iso639_str3_to_key("gem")] = QString("Germanic (Other)");
00320   names[iso639_str3_to_key("geo")] = QString("Georgian"); // kat
00321   names[iso639_str3_to_key("ger")] = QString("German"); // deu
00322   names[iso639_str3_to_key("gez")] = QString("Geez");
00323   names[iso639_str3_to_key("gil")] = QString("Gilbertese");
00324   names[iso639_str3_to_key("gla")] = QString("Gaelic; Scottish Gaelic");
00325   names[iso639_str3_to_key("gle")] = QString("Irish");
00326   names[iso639_str3_to_key("glg")] = QString("Gallegan");
00327   names[iso639_str3_to_key("glv")] = QString("Manx");
00328   names[iso639_str3_to_key("gmh")] = QString("Middle High German (ca.1050-1500)");
00329   names[iso639_str3_to_key("goh")] = QString("Old High German (ca.750-1050)");
00330   names[iso639_str3_to_key("gon")] = QString("Gondi");
00331   names[iso639_str3_to_key("gor")] = QString("Gorontalo");
00332   names[iso639_str3_to_key("got")] = QString("Gothic");
00333   names[iso639_str3_to_key("grb")] = QString("Grebo");
00334   names[iso639_str3_to_key("grc")] = QString("Greek, Ancient (to 1453)");
00335   names[iso639_str3_to_key("gre")] = QString("Greek, Modern (1453-)"); // ell
00336   names[iso639_str3_to_key("grn")] = QString("Guarani");
00337   names[iso639_str3_to_key("guj")] = QString("Gujarati");
00338   names[iso639_str3_to_key("gwi")] = QString("Gwich�in");
00339   names[iso639_str3_to_key("hai")] = QString("Haida");
00340   names[iso639_str3_to_key("hat")] = QString("Haitian; Haitian Creole");
00341   names[iso639_str3_to_key("hau")] = QString("Hausa");
00342   names[iso639_str3_to_key("haw")] = QString("Hawaiian");
00343   names[iso639_str3_to_key("heb")] = QString("Hebrew");
00344   names[iso639_str3_to_key("her")] = QString("Herero");
00345   names[iso639_str3_to_key("hil")] = QString("Hiligaynon");
00346   names[iso639_str3_to_key("him")] = QString("Himachali");
00347   names[iso639_str3_to_key("hin")] = QString("Hindi");
00348   names[iso639_str3_to_key("hit")] = QString("Hittite");
00349   names[iso639_str3_to_key("hmn")] = QString("Hmong");
00350   names[iso639_str3_to_key("hmo")] = QString("Hiri Motu");
00351   names[iso639_str3_to_key("hsb")] = QString("Upper Sorbian");
00352   names[iso639_str3_to_key("hun")] = QString("Hungarian");
00353   names[iso639_str3_to_key("hup")] = QString("Hupa");
00354   names[iso639_str3_to_key("iba")] = QString("Iban");
00355   names[iso639_str3_to_key("ibo")] = QString("Igbo");
00356   names[iso639_str3_to_key("ice")] = QString("Icelandic"); // isl
00357   names[iso639_str3_to_key("ido")] = QString("Ido");
00358   names[iso639_str3_to_key("iii")] = QString("Sichuan Yi");
00359   names[iso639_str3_to_key("ijo")] = QString("Ijo");
00360   names[iso639_str3_to_key("iku")] = QString("Inuktitut");
00361   names[iso639_str3_to_key("ile")] = QString("Interlingue");
00362   names[iso639_str3_to_key("ilo")] = QString("Iloko");
00363   names[iso639_str3_to_key("ina")] = QString("Interlingua");
00364   names[iso639_str3_to_key("inc")] = QString("Indic (Other)");
00365   names[iso639_str3_to_key("ind")] = QString("Indonesian");
00366   names[iso639_str3_to_key("ine")] = QString("Indo-European (Other)");
00367   names[iso639_str3_to_key("inh")] = QString("Ingush");
00368   names[iso639_str3_to_key("ipk")] = QString("Inupiaq");
00369   names[iso639_str3_to_key("ira")] = QString("Iranian (Other)");
00370   names[iso639_str3_to_key("iro")] = QString("Iroquoian languages");
00371   names[iso639_str3_to_key("ita")] = QString("Italian");
00372   names[iso639_str3_to_key("jav")] = QString("Javanese");
00373   names[iso639_str3_to_key("jbo")] = QString("Lojban");
00374   names[iso639_str3_to_key("jpn")] = QString("Japanese");
00375   names[iso639_str3_to_key("jpr")] = QString("Judeo-Persian");
00376   names[iso639_str3_to_key("jrb")] = QString("Judeo-Arabic");
00377   names[iso639_str3_to_key("kaa")] = QString("Kara-Kalpak");
00378   names[iso639_str3_to_key("kab")] = QString("Kabyle");
00379   names[iso639_str3_to_key("kac")] = QString("Kachin");
00380   names[iso639_str3_to_key("kal")] = QString("Kalaallisut; Greenlandic");
00381   names[iso639_str3_to_key("kam")] = QString("Kamba");
00382   names[iso639_str3_to_key("kan")] = QString("Kannada");
00383   names[iso639_str3_to_key("kar")] = QString("Karen");
00384   names[iso639_str3_to_key("kas")] = QString("Kashmiri");
00385   names[iso639_str3_to_key("kau")] = QString("Kanuri");
00386   names[iso639_str3_to_key("kaw")] = QString("Kawi");
00387   names[iso639_str3_to_key("kaz")] = QString("Kazakh");
00388   names[iso639_str3_to_key("kbd")] = QString("Kabardian");
00389   names[iso639_str3_to_key("kha")] = QString("Khasi");
00390   names[iso639_str3_to_key("khi")] = QString("Khoisan (Other)");
00391   names[iso639_str3_to_key("khm")] = QString("Khmer");
00392   names[iso639_str3_to_key("kho")] = QString("Khotanese");
00393   names[iso639_str3_to_key("kik")] = QString("Kikuyu; Gikuyu");
00394   names[iso639_str3_to_key("kin")] = QString("Kinyarwanda");
00395   names[iso639_str3_to_key("kir")] = QString("Kirghiz");
00396   names[iso639_str3_to_key("kmb")] = QString("Kimbundu");
00397   names[iso639_str3_to_key("kok")] = QString("Konkani");
00398   names[iso639_str3_to_key("kom")] = QString("Komi");
00399   names[iso639_str3_to_key("kon")] = QString("Kongo");
00400   names[iso639_str3_to_key("kor")] = QString("Korean");
00401   names[iso639_str3_to_key("kos")] = QString("Kosraean");
00402   names[iso639_str3_to_key("kpe")] = QString("Kpelle");
00403   names[iso639_str3_to_key("krc")] = QString("Karachay-Balkar");
00404   names[iso639_str3_to_key("kro")] = QString("Kru");
00405   names[iso639_str3_to_key("kru")] = QString("Kurukh");
00406   names[iso639_str3_to_key("kua")] = QString("Kuanyama; Kwanyama");
00407   names[iso639_str3_to_key("kum")] = QString("Kumyk");
00408   names[iso639_str3_to_key("kur")] = QString("Kurdish");
00409   names[iso639_str3_to_key("kut")] = QString("Kutenai");
00410   names[iso639_str3_to_key("lad")] = QString("Ladino");
00411   names[iso639_str3_to_key("lah")] = QString("Lahnda");
00412   names[iso639_str3_to_key("lam")] = QString("Lamba");
00413   names[iso639_str3_to_key("lao")] = QString("Lao");
00414   names[iso639_str3_to_key("lat")] = QString("Latin");
00415   names[iso639_str3_to_key("lav")] = QString("Latvian");
00416   names[iso639_str3_to_key("lez")] = QString("Lezghian");
00417   names[iso639_str3_to_key("lim")] = QString("Limburgan; Limburger; Limburgish");
00418   names[iso639_str3_to_key("lin")] = QString("Lingala");
00419   names[iso639_str3_to_key("lit")] = QString("Lithuanian");
00420   names[iso639_str3_to_key("lol")] = QString("Mongo");
00421   names[iso639_str3_to_key("loz")] = QString("Lozi");
00422   names[iso639_str3_to_key("ltz")] = QString("Luxembourgish; Letzeburgesch");
00423   names[iso639_str3_to_key("lua")] = QString("Luba-Lulua");
00424   names[iso639_str3_to_key("lub")] = QString("Luba-Katanga");
00425   names[iso639_str3_to_key("lug")] = QString("Ganda");
00426   names[iso639_str3_to_key("lui")] = QString("Luiseno");
00427   names[iso639_str3_to_key("lun")] = QString("Lunda");
00428   names[iso639_str3_to_key("luo")] = QString("Luo (Kenya and Tanzania)");
00429   names[iso639_str3_to_key("lus")] = QString("lushai");
00430   names[iso639_str3_to_key("mac")] = QString("Macedonian"); // mkd
00431   names[iso639_str3_to_key("mad")] = QString("Madurese");
00432   names[iso639_str3_to_key("mag")] = QString("Magahi");
00433   names[iso639_str3_to_key("mah")] = QString("Marshallese");
00434   names[iso639_str3_to_key("mai")] = QString("Maithili");
00435   names[iso639_str3_to_key("mak")] = QString("Makasar");
00436   names[iso639_str3_to_key("mal")] = QString("Malayalam");
00437   names[iso639_str3_to_key("man")] = QString("Mandingo");
00438   names[iso639_str3_to_key("mao")] = QString("Maori"); // mri
00439   names[iso639_str3_to_key("map")] = QString("Austronesian (Other)");
00440   names[iso639_str3_to_key("mar")] = QString("Marathi");
00441   names[iso639_str3_to_key("mas")] = QString("Masai");
00442   names[iso639_str3_to_key("may")] = QString("Malay"); // msa
00443   names[iso639_str3_to_key("mdf")] = QString("Moksha");
00444   names[iso639_str3_to_key("mdr")] = QString("Mandar");
00445   names[iso639_str3_to_key("men")] = QString("Mende");
00446   names[iso639_str3_to_key("mga")] = QString("Middle Irish (900-1200)");
00447   names[iso639_str3_to_key("mic")] = QString("Micmac");
00448   names[iso639_str3_to_key("min")] = QString("Minangkabau");
00449   names[iso639_str3_to_key("mis")] = QString("Miscellaneous languages");
00450   names[iso639_str3_to_key("mkh")] = QString("Mon-Khmer (Other)");
00451   names[iso639_str3_to_key("mlg")] = QString("Malagasy");
00452   names[iso639_str3_to_key("mlt")] = QString("Maltese");
00453   names[iso639_str3_to_key("mnc")] = QString("Manchu");
00454   names[iso639_str3_to_key("mni")] = QString("Manipuri");
00455   names[iso639_str3_to_key("mno")] = QString("Manobo languages");
00456   names[iso639_str3_to_key("moh")] = QString("Mohawk");
00457   names[iso639_str3_to_key("mol")] = QString("Moldavian");
00458   names[iso639_str3_to_key("mon")] = QString("Mongolian");
00459   names[iso639_str3_to_key("mos")] = QString("Mossi");
00460   names[iso639_str3_to_key("mul")] = QString("Multiple languages");
00461   names[iso639_str3_to_key("mun")] = QString("Munda languages");
00462   names[iso639_str3_to_key("mus")] = QString("Creek");
00463   names[iso639_str3_to_key("mwr")] = QString("Marwari");
00464   names[iso639_str3_to_key("myn")] = QString("Mayan languages");
00465   names[iso639_str3_to_key("myv")] = QString("Erzya");
00466   names[iso639_str3_to_key("nah")] = QString("Nahuatl");
00467   names[iso639_str3_to_key("nai")] = QString("North American Indian");
00468   names[iso639_str3_to_key("nap")] = QString("Neapolitan");
00469   names[iso639_str3_to_key("nau")] = QString("Nauru");
00470   names[iso639_str3_to_key("nav")] = QString("Navajo; Navaho");
00471   names[iso639_str3_to_key("nbl")] = QString("Ndebele, South; South Ndebele");
00472   names[iso639_str3_to_key("nde")] = QString("Ndebele, North; North Ndebele");
00473   names[iso639_str3_to_key("ndo")] = QString("Ndonga");
00474   names[iso639_str3_to_key("nds")] = QString("Low German; Low Saxon");
00475   names[iso639_str3_to_key("nep")] = QString("Nepali");
00476   names[iso639_str3_to_key("new")] = QString("Newari");
00477   names[iso639_str3_to_key("nia")] = QString("Nias");
00478   names[iso639_str3_to_key("nic")] = QString("Niger-Kordofanian (Other)");
00479   names[iso639_str3_to_key("niu")] = QString("Niuean");
00480   names[iso639_str3_to_key("nno")] = QString("Norwegian Nynorsk");
00481   names[iso639_str3_to_key("nob")] = QString("Norwegian Bokm�l");
00482   names[iso639_str3_to_key("nog")] = QString("Nogai");
00483   names[iso639_str3_to_key("non")] = QString("Old Norse");
00484   names[iso639_str3_to_key("nor")] = QString("Norwegian");
00485   names[iso639_str3_to_key("nso")] = QString("Northern Sotho");
00486   names[iso639_str3_to_key("nub")] = QString("Nubian languages");
00487   names[iso639_str3_to_key("nwc")] = QString("Classical Newari; Old Newari");
00488   names[iso639_str3_to_key("nya")] = QString("Chichewa; Chewa; Nyanja");
00489   names[iso639_str3_to_key("nym")] = QString("Nyamwezi");
00490   names[iso639_str3_to_key("nyn")] = QString("Nyankole");
00491   names[iso639_str3_to_key("nyo")] = QString("Nyoro");
00492   names[iso639_str3_to_key("nzi")] = QString("Nzima");
00493   names[iso639_str3_to_key("oci")] = QString("Occitan (post 1500); Proven�al");
00494   names[iso639_str3_to_key("oji")] = QString("Ojibwa");
00495   names[iso639_str3_to_key("ori")] = QString("Oriya");
00496   names[iso639_str3_to_key("orm")] = QString("Oromo");
00497   names[iso639_str3_to_key("osa")] = QString("Osage");
00498   names[iso639_str3_to_key("oss")] = QString("Ossetian; Ossetic");
00499   names[iso639_str3_to_key("ota")] = QString("Ottoman Turkish (1500-1928)");
00500   names[iso639_str3_to_key("oto")] = QString("Otomian languages");
00501   names[iso639_str3_to_key("paa")] = QString("Papuan (Other)");
00502   names[iso639_str3_to_key("pag")] = QString("Pangasinan");
00503   names[iso639_str3_to_key("pal")] = QString("Pahlavi");
00504   names[iso639_str3_to_key("pam")] = QString("Pampanga");
00505   names[iso639_str3_to_key("pan")] = QString("Panjabi; Punjabi");
00506   names[iso639_str3_to_key("pap")] = QString("Papiamento");
00507   names[iso639_str3_to_key("pau")] = QString("Palauan");
00508   names[iso639_str3_to_key("peo")] = QString("Old Persian (ca.600-400 B.C.)");
00509   names[iso639_str3_to_key("per")] = QString("Persian"); // fas
00510   names[iso639_str3_to_key("phi")] = QString("Philippine (Other)");
00511   names[iso639_str3_to_key("phn")] = QString("Phoenician");
00512   names[iso639_str3_to_key("pli")] = QString("Pali");
00513   names[iso639_str3_to_key("pol")] = QString("Polish");
00514   names[iso639_str3_to_key("pon")] = QString("Pohnpeian");
00515   names[iso639_str3_to_key("por")] = QString("Portuguese");
00516   names[iso639_str3_to_key("pra")] = QString("Prakrit languages");
00517   names[iso639_str3_to_key("pro")] = QString("Old Proven�al  (to 1500)");
00518   names[iso639_str3_to_key("pus")] = QString("Pushto");
00519   names[iso639_str3_to_key("qaa")] = QString("Original language"); // from DVB-SI (EN 300 468)
00520   names[iso639_str3_to_key("qtz")] = QString("Reserved for local use");
00521   names[iso639_str3_to_key("que")] = QString("Quechua");
00522   names[iso639_str3_to_key("raj")] = QString("Rajasthani");
00523   names[iso639_str3_to_key("rap")] = QString("Rapanui");
00524   names[iso639_str3_to_key("rar")] = QString("Rarotongan");
00525   names[iso639_str3_to_key("roa")] = QString("Romance (Other)");
00526   names[iso639_str3_to_key("roh")] = QString("Raeto-Romance");
00527   names[iso639_str3_to_key("rom")] = QString("Romany");
00528   names[iso639_str3_to_key("rum")] = QString("Romanian");
00529   names[iso639_str3_to_key("run")] = QString("Rundi");
00530   names[iso639_str3_to_key("rus")] = QString("Russian");
00531   names[iso639_str3_to_key("sad")] = QString("Sandawe");
00532   names[iso639_str3_to_key("sag")] = QString("Sango");
00533   names[iso639_str3_to_key("sah")] = QString("Yakut");
00534   names[iso639_str3_to_key("sai")] = QString("South American Indian (Other)");
00535   names[iso639_str3_to_key("sal")] = QString("Salishan languages");
00536   names[iso639_str3_to_key("sam")] = QString("Samaritan Aramaic");
00537   names[iso639_str3_to_key("san")] = QString("Sanskrit");
00538   names[iso639_str3_to_key("sas")] = QString("Sasak");
00539   names[iso639_str3_to_key("sat")] = QString("Santali");
00540   names[iso639_str3_to_key("scc")] = QString("Serbian"); // srp
00541   names[iso639_str3_to_key("sco")] = QString("Scots");
00542   names[iso639_str3_to_key("scr")] = QString("Croatian"); // hrv
00543   names[iso639_str3_to_key("sel")] = QString("Selkup");
00544   names[iso639_str3_to_key("sem")] = QString("Semitic (Other)");
00545   names[iso639_str3_to_key("sga")] = QString("Old Irish (to 900)");
00546   names[iso639_str3_to_key("sgn")] = QString("Sign Languages");
00547   names[iso639_str3_to_key("shn")] = QString("Shan");
00548   names[iso639_str3_to_key("sid")] = QString("Sidamo");
00549   names[iso639_str3_to_key("sin")] = QString("Sinhalese");
00550   names[iso639_str3_to_key("sio")] = QString("Siouan languages");
00551   names[iso639_str3_to_key("sit")] = QString("Sino-Tibetan (Other)");
00552   names[iso639_str3_to_key("sla")] = QString("Slavic (Other)");
00553   names[iso639_str3_to_key("slo")] = QString("Slovak"); // slk
00554   names[iso639_str3_to_key("slv")] = QString("Slovenian");
00555   names[iso639_str3_to_key("sma")] = QString("Southern Sami");
00556   names[iso639_str3_to_key("sme")] = QString("Northern Sami");
00557   names[iso639_str3_to_key("smi")] = QString("Sami languages (Other)");
00558   names[iso639_str3_to_key("smj")] = QString("Lule Sami");
00559   names[iso639_str3_to_key("smn")] = QString("Inari Sami");
00560   names[iso639_str3_to_key("smo")] = QString("Samoan");
00561   names[iso639_str3_to_key("sms")] = QString("Skolt Sami");
00562   names[iso639_str3_to_key("sna")] = QString("Shona");
00563   names[iso639_str3_to_key("snd")] = QString("Sindhi");
00564   names[iso639_str3_to_key("snk")] = QString("Soninke");
00565   names[iso639_str3_to_key("sog")] = QString("Sogdian");
00566   names[iso639_str3_to_key("som")] = QString("Somali");
00567   names[iso639_str3_to_key("son")] = QString("Songhai");
00568   names[iso639_str3_to_key("sot")] = QString("Sotho, Southern");
00569   names[iso639_str3_to_key("spa")] = QString("Spanish; Castilian");
00570   names[iso639_str3_to_key("srd")] = QString("Sardinian");
00571   names[iso639_str3_to_key("srr")] = QString("Serer");
00572   names[iso639_str3_to_key("ssa")] = QString("Nilo-Saharan (Other)");
00573   names[iso639_str3_to_key("ssw")] = QString("Swati");
00574   names[iso639_str3_to_key("suk")] = QString("Sukuma");
00575   names[iso639_str3_to_key("sun")] = QString("Sundanese");
00576   names[iso639_str3_to_key("sus")] = QString("Susu");
00577   names[iso639_str3_to_key("sux")] = QString("Sumerian");
00578   names[iso639_str3_to_key("swa")] = QString("Swahili");
00579   names[iso639_str3_to_key("swe")] = QString("Swedish");
00580   names[iso639_str3_to_key("syr")] = QString("Syriac");
00581   names[iso639_str3_to_key("tah")] = QString("Tahitian");
00582   names[iso639_str3_to_key("tai")] = QString("Tai (Other)");
00583   names[iso639_str3_to_key("tam")] = QString("Tamil");
00584   names[iso639_str3_to_key("tat")] = QString("Tatar");
00585   names[iso639_str3_to_key("tel")] = QString("Telugu");
00586   names[iso639_str3_to_key("tem")] = QString("Timne");
00587   names[iso639_str3_to_key("ter")] = QString("Tereno");
00588   names[iso639_str3_to_key("tet")] = QString("Tetum");
00589   names[iso639_str3_to_key("tgk")] = QString("Tajik");
00590   names[iso639_str3_to_key("tgl")] = QString("Tagalog");
00591   names[iso639_str3_to_key("tha")] = QString("Thai");
00592   names[iso639_str3_to_key("tib")] = QString("Tibetan"); // bod
00593   names[iso639_str3_to_key("tig")] = QString("Tigre");
00594   names[iso639_str3_to_key("tir")] = QString("Tigrinya");
00595   names[iso639_str3_to_key("tiv")] = QString("Tiv");
00596   names[iso639_str3_to_key("tkl")] = QString("Tokelau");
00597   names[iso639_str3_to_key("tlh")] = QString("Klingon; tlhlngan-Hol");
00598   names[iso639_str3_to_key("tli")] = QString("Tlingit");
00599   names[iso639_str3_to_key("tmh")] = QString("Tamashek");
00600   names[iso639_str3_to_key("tog")] = QString("Tonga (Nyasa)");
00601   names[iso639_str3_to_key("ton")] = QString("Tonga (Tonga Islands)");
00602   names[iso639_str3_to_key("tpi")] = QString("Tok Pisin");
00603   names[iso639_str3_to_key("tsi")] = QString("Tsimshian");
00604   names[iso639_str3_to_key("tsn")] = QString("Tswana");
00605   names[iso639_str3_to_key("tso")] = QString("Tsonga");
00606   names[iso639_str3_to_key("tuk")] = QString("Turkmen");
00607   names[iso639_str3_to_key("tum")] = QString("Tumbuka");
00608   names[iso639_str3_to_key("tup")] = QString("Tupi languages");
00609   names[iso639_str3_to_key("tur")] = QString("Turkish");
00610   names[iso639_str3_to_key("tut")] = QString("Altaic (Other)");
00611   names[iso639_str3_to_key("tvl")] = QString("Tuvalu");
00612   names[iso639_str3_to_key("twi")] = QString("Twi");
00613   names[iso639_str3_to_key("tyv")] = QString("Tuvinian");
00614   names[iso639_str3_to_key("udm")] = QString("Udmurt");
00615   names[iso639_str3_to_key("uga")] = QString("Ugaritic");
00616   names[iso639_str3_to_key("uig")] = QString("Uighur");
00617   names[iso639_str3_to_key("ukr")] = QString("Ukrainian");
00618   names[iso639_str3_to_key("umb")] = QString("Umbundu");
00619   names[iso639_str3_to_key("und")] = QString("Undetermined");
00620   names[iso639_str3_to_key("urd")] = QString("Urdu");
00621   names[iso639_str3_to_key("uzb")] = QString("Uzbek");
00622   names[iso639_str3_to_key("vai")] = QString("Vai");
00623   names[iso639_str3_to_key("ven")] = QString("Venda");
00624   names[iso639_str3_to_key("vie")] = QString("Vietnamese");
00625   names[iso639_str3_to_key("vol")] = QString("Volap�k");
00626   names[iso639_str3_to_key("vot")] = QString("Votic");
00627   names[iso639_str3_to_key("wak")] = QString("Wakashan languages");
00628   names[iso639_str3_to_key("wal")] = QString("Walamo");
00629   names[iso639_str3_to_key("war")] = QString("Waray");
00630   names[iso639_str3_to_key("was")] = QString("Washo");
00631   names[iso639_str3_to_key("wel")] = QString("Welsh"); // cym
00632   names[iso639_str3_to_key("wen")] = QString("Sorbian languages");
00633   names[iso639_str3_to_key("wln")] = QString("Walloon");
00634   names[iso639_str3_to_key("wol")] = QString("Wolof");
00635   names[iso639_str3_to_key("xal")] = QString("Kalmyk");
00636   names[iso639_str3_to_key("xho")] = QString("Xhosa");
00637   names[iso639_str3_to_key("yao")] = QString("Yao");
00638   names[iso639_str3_to_key("yap")] = QString("Yapese");
00639   names[iso639_str3_to_key("yid")] = QString("Yiddish");
00640   names[iso639_str3_to_key("yor")] = QString("Yoruba");
00641   names[iso639_str3_to_key("ypk")] = QString("Yupik languages");
00642   names[iso639_str3_to_key("zap")] = QString("Zapotec");
00643   names[iso639_str3_to_key("zen")] = QString("Zenaga");
00644   names[iso639_str3_to_key("zha")] = QString("Zhuang; Chuang");
00645   names[iso639_str3_to_key("znd")] = QString("Zande");
00646   names[iso639_str3_to_key("zul")] = QString("Zulu");
00647   names[iso639_str3_to_key("zun")] = QString("Zuni");
00648   return 0;
00649 }
00650 
00651 /*
00652   awk script:
00653     cat ISO-639-2_values_8bits.txt | \
00654       awk -F'|' '{if ($3 != "") printf "  codemap[iso639_str2_to_key(\"%s\")] = iso639_str3_to_key(\"%s\");\n", $3, $1}'
00655 */
00656 
00657 static int createCode2ToCode3Map(QMap<int, int>& codemap) {
00658   codemap[iso639_str2_to_key2("aa")] = iso639_str3_to_key("aar");
00659   codemap[iso639_str2_to_key2("ab")] = iso639_str3_to_key("abk");
00660   codemap[iso639_str2_to_key2("af")] = iso639_str3_to_key("afr");
00661   codemap[iso639_str2_to_key2("ak")] = iso639_str3_to_key("aka");
00662   codemap[iso639_str2_to_key2("sq")] = iso639_str3_to_key("alb");
00663   codemap[iso639_str2_to_key2("sq")] = iso639_str3_to_key("alb");
00664   codemap[iso639_str2_to_key2("am")] = iso639_str3_to_key("amh");
00665   codemap[iso639_str2_to_key2("ar")] = iso639_str3_to_key("ara");
00666   codemap[iso639_str2_to_key2("an")] = iso639_str3_to_key("arg");
00667   codemap[iso639_str2_to_key2("hy")] = iso639_str3_to_key("arm");
00668   codemap[iso639_str2_to_key2("hy")] = iso639_str3_to_key("arm");
00669   codemap[iso639_str2_to_key2("as")] = iso639_str3_to_key("asm");
00670   codemap[iso639_str2_to_key2("av")] = iso639_str3_to_key("ava");
00671   codemap[iso639_str2_to_key2("ae")] = iso639_str3_to_key("ave");
00672   codemap[iso639_str2_to_key2("ay")] = iso639_str3_to_key("aym");
00673   codemap[iso639_str2_to_key2("az")] = iso639_str3_to_key("aze");
00674   codemap[iso639_str2_to_key2("ba")] = iso639_str3_to_key("bak");
00675   codemap[iso639_str2_to_key2("bm")] = iso639_str3_to_key("bam");
00676   codemap[iso639_str2_to_key2("eu")] = iso639_str3_to_key("baq");
00677   codemap[iso639_str2_to_key2("eu")] = iso639_str3_to_key("baq");
00678   codemap[iso639_str2_to_key2("be")] = iso639_str3_to_key("bel");
00679   codemap[iso639_str2_to_key2("bn")] = iso639_str3_to_key("ben");
00680   codemap[iso639_str2_to_key2("bh")] = iso639_str3_to_key("bih");
00681   codemap[iso639_str2_to_key2("bi")] = iso639_str3_to_key("bis");
00682   codemap[iso639_str2_to_key2("bs")] = iso639_str3_to_key("bos");
00683   codemap[iso639_str2_to_key2("br")] = iso639_str3_to_key("bre");
00684   codemap[iso639_str2_to_key2("bg")] = iso639_str3_to_key("bul");
00685   codemap[iso639_str2_to_key2("my")] = iso639_str3_to_key("bur");
00686   codemap[iso639_str2_to_key2("my")] = iso639_str3_to_key("bur");
00687   codemap[iso639_str2_to_key2("ca")] = iso639_str3_to_key("cat");
00688   codemap[iso639_str2_to_key2("ch")] = iso639_str3_to_key("cha");
00689   codemap[iso639_str2_to_key2("ce")] = iso639_str3_to_key("che");
00690   codemap[iso639_str2_to_key2("zh")] = iso639_str3_to_key("chi");
00691   codemap[iso639_str2_to_key2("zh")] = iso639_str3_to_key("chi");
00692   codemap[iso639_str2_to_key2("cu")] = iso639_str3_to_key("chu");
00693   codemap[iso639_str2_to_key2("cv")] = iso639_str3_to_key("chv");
00694   codemap[iso639_str2_to_key2("kw")] = iso639_str3_to_key("cor");
00695   codemap[iso639_str2_to_key2("co")] = iso639_str3_to_key("cos");
00696   codemap[iso639_str2_to_key2("cr")] = iso639_str3_to_key("cre");
00697   codemap[iso639_str2_to_key2("cs")] = iso639_str3_to_key("cze");
00698   codemap[iso639_str2_to_key2("cs")] = iso639_str3_to_key("cze");
00699   codemap[iso639_str2_to_key2("da")] = iso639_str3_to_key("dan");
00700   codemap[iso639_str2_to_key2("dv")] = iso639_str3_to_key("div");
00701   codemap[iso639_str2_to_key2("nl")] = iso639_str3_to_key("dut");
00702   codemap[iso639_str2_to_key2("nl")] = iso639_str3_to_key("dut");
00703   codemap[iso639_str2_to_key2("dz")] = iso639_str3_to_key("dzo");
00704   codemap[iso639_str2_to_key2("en")] = iso639_str3_to_key("eng");
00705   codemap[iso639_str2_to_key2("eo")] = iso639_str3_to_key("epo");
00706   codemap[iso639_str2_to_key2("et")] = iso639_str3_to_key("est");
00707   codemap[iso639_str2_to_key2("ee")] = iso639_str3_to_key("ewe");
00708   codemap[iso639_str2_to_key2("fo")] = iso639_str3_to_key("fao");
00709   codemap[iso639_str2_to_key2("fj")] = iso639_str3_to_key("fij");
00710   codemap[iso639_str2_to_key2("fi")] = iso639_str3_to_key("fin");
00711   codemap[iso639_str2_to_key2("fr")] = iso639_str3_to_key("fre");
00712   codemap[iso639_str2_to_key2("fy")] = iso639_str3_to_key("fry");
00713   codemap[iso639_str2_to_key2("ff")] = iso639_str3_to_key("ful");
00714   codemap[iso639_str2_to_key2("ka")] = iso639_str3_to_key("geo");
00715   codemap[iso639_str2_to_key2("ka")] = iso639_str3_to_key("geo");
00716   codemap[iso639_str2_to_key2("de")] = iso639_str3_to_key("ger");
00717   codemap[iso639_str2_to_key2("de")] = iso639_str3_to_key("ger");
00718   codemap[iso639_str2_to_key2("gd")] = iso639_str3_to_key("gla");
00719   codemap[iso639_str2_to_key2("ga")] = iso639_str3_to_key("gle");
00720   codemap[iso639_str2_to_key2("gl")] = iso639_str3_to_key("glg");
00721   codemap[iso639_str2_to_key2("gv")] = iso639_str3_to_key("glv");
00722   codemap[iso639_str2_to_key2("el")] = iso639_str3_to_key("gre");
00723   codemap[iso639_str2_to_key2("el")] = iso639_str3_to_key("gre");
00724   codemap[iso639_str2_to_key2("gn")] = iso639_str3_to_key("grn");
00725   codemap[iso639_str2_to_key2("gu")] = iso639_str3_to_key("guj");
00726   codemap[iso639_str2_to_key2("ht")] = iso639_str3_to_key("hat");
00727   codemap[iso639_str2_to_key2("ha")] = iso639_str3_to_key("hau");
00728   codemap[iso639_str2_to_key2("he")] = iso639_str3_to_key("heb");
00729   codemap[iso639_str2_to_key2("hz")] = iso639_str3_to_key("her");
00730   codemap[iso639_str2_to_key2("hi")] = iso639_str3_to_key("hin");
00731   codemap[iso639_str2_to_key2("ho")] = iso639_str3_to_key("hmo");
00732   codemap[iso639_str2_to_key2("hu")] = iso639_str3_to_key("hun");
00733   codemap[iso639_str2_to_key2("ig")] = iso639_str3_to_key("ibo");
00734   codemap[iso639_str2_to_key2("is")] = iso639_str3_to_key("ice");
00735   codemap[iso639_str2_to_key2("is")] = iso639_str3_to_key("ice");
00736   codemap[iso639_str2_to_key2("io")] = iso639_str3_to_key("ido");
00737   codemap[iso639_str2_to_key2("ii")] = iso639_str3_to_key("iii");
00738   codemap[iso639_str2_to_key2("iu")] = iso639_str3_to_key("iku");
00739   codemap[iso639_str2_to_key2("ie")] = iso639_str3_to_key("ile");
00740   codemap[iso639_str2_to_key2("ia")] = iso639_str3_to_key("ina");
00741   codemap[iso639_str2_to_key2("id")] = iso639_str3_to_key("ind");
00742   codemap[iso639_str2_to_key2("ik")] = iso639_str3_to_key("ipk");
00743   codemap[iso639_str2_to_key2("it")] = iso639_str3_to_key("ita");
00744   codemap[iso639_str2_to_key2("jv")] = iso639_str3_to_key("jav");
00745   codemap[iso639_str2_to_key2("ja")] = iso639_str3_to_key("jpn");
00746   codemap[iso639_str2_to_key2("kl")] = iso639_str3_to_key("kal");
00747   codemap[iso639_str2_to_key2("kn")] = iso639_str3_to_key("kan");
00748   codemap[iso639_str2_to_key2("ks")] = iso639_str3_to_key("kas");
00749   codemap[iso639_str2_to_key2("kr")] = iso639_str3_to_key("kau");
00750   codemap[iso639_str2_to_key2("kk")] = iso639_str3_to_key("kaz");
00751   codemap[iso639_str2_to_key2("km")] = iso639_str3_to_key("khm");
00752   codemap[iso639_str2_to_key2("ki")] = iso639_str3_to_key("kik");
00753   codemap[iso639_str2_to_key2("rw")] = iso639_str3_to_key("kin");
00754   codemap[iso639_str2_to_key2("ky")] = iso639_str3_to_key("kir");
00755   codemap[iso639_str2_to_key2("kv")] = iso639_str3_to_key("kom");
00756   codemap[iso639_str2_to_key2("kg")] = iso639_str3_to_key("kon");
00757   codemap[iso639_str2_to_key2("ko")] = iso639_str3_to_key("kor");
00758   codemap[iso639_str2_to_key2("kj")] = iso639_str3_to_key("kua");
00759   codemap[iso639_str2_to_key2("ku")] = iso639_str3_to_key("kur");
00760   codemap[iso639_str2_to_key2("lo")] = iso639_str3_to_key("lao");
00761   codemap[iso639_str2_to_key2("la")] = iso639_str3_to_key("lat");
00762   codemap[iso639_str2_to_key2("lv")] = iso639_str3_to_key("lav");
00763   codemap[iso639_str2_to_key2("li")] = iso639_str3_to_key("lim");
00764   codemap[iso639_str2_to_key2("ln")] = iso639_str3_to_key("lin");
00765   codemap[iso639_str2_to_key2("lt")] = iso639_str3_to_key("lit");
00766   codemap[iso639_str2_to_key2("lb")] = iso639_str3_to_key("ltz");
00767   codemap[iso639_str2_to_key2("lu")] = iso639_str3_to_key("lub");
00768   codemap[iso639_str2_to_key2("lg")] = iso639_str3_to_key("lug");
00769   codemap[iso639_str2_to_key2("mk")] = iso639_str3_to_key("mac");
00770   codemap[iso639_str2_to_key2("mk")] = iso639_str3_to_key("mac");
00771   codemap[iso639_str2_to_key2("mh")] = iso639_str3_to_key("mah");
00772   codemap[iso639_str2_to_key2("ml")] = iso639_str3_to_key("mal");
00773   codemap[iso639_str2_to_key2("mi")] = iso639_str3_to_key("mao");
00774   codemap[iso639_str2_to_key2("mi")] = iso639_str3_to_key("mao");
00775   codemap[iso639_str2_to_key2("mr")] = iso639_str3_to_key("mar");
00776   codemap[iso639_str2_to_key2("ms")] = iso639_str3_to_key("may");
00777   codemap[iso639_str2_to_key2("ms")] = iso639_str3_to_key("may");
00778   codemap[iso639_str2_to_key2("mg")] = iso639_str3_to_key("mlg");
00779   codemap[iso639_str2_to_key2("mt")] = iso639_str3_to_key("mlt");
00780   codemap[iso639_str2_to_key2("mo")] = iso639_str3_to_key("mol");
00781   codemap[iso639_str2_to_key2("mn")] = iso639_str3_to_key("mon");
00782   codemap[iso639_str2_to_key2("na")] = iso639_str3_to_key("nau");
00783   codemap[iso639_str2_to_key2("nv")] = iso639_str3_to_key("nav");
00784   codemap[iso639_str2_to_key2("nr")] = iso639_str3_to_key("nbl");
00785   codemap[iso639_str2_to_key2("nd")] = iso639_str3_to_key("nde");
00786   codemap[iso639_str2_to_key2("ng")] = iso639_str3_to_key("ndo");
00787   codemap[iso639_str2_to_key2("ne")] = iso639_str3_to_key("nep");
00788   codemap[iso639_str2_to_key2("nn")] = iso639_str3_to_key("nno");
00789   codemap[iso639_str2_to_key2("nb")] = iso639_str3_to_key("nob");
00790   codemap[iso639_str2_to_key2("no")] = iso639_str3_to_key("nor");
00791   codemap[iso639_str2_to_key2("ny")] = iso639_str3_to_key("nya");
00792   codemap[iso639_str2_to_key2("oc")] = iso639_str3_to_key("oci");
00793   codemap[iso639_str2_to_key2("oj")] = iso639_str3_to_key("oji");
00794   codemap[iso639_str2_to_key2("or")] = iso639_str3_to_key("ori");
00795   codemap[iso639_str2_to_key2("om")] = iso639_str3_to_key("orm");
00796   codemap[iso639_str2_to_key2("os")] = iso639_str3_to_key("oss");
00797   codemap[iso639_str2_to_key2("pa")] = iso639_str3_to_key("pan");
00798   codemap[iso639_str2_to_key2("fa")] = iso639_str3_to_key("per");
00799   codemap[iso639_str2_to_key2("fa")] = iso639_str3_to_key("per");
00800   codemap[iso639_str2_to_key2("pi")] = iso639_str3_to_key("pli");
00801   codemap[iso639_str2_to_key2("pl")] = iso639_str3_to_key("pol");
00802   codemap[iso639_str2_to_key2("pt")] = iso639_str3_to_key("por");
00803   codemap[iso639_str2_to_key2("ps")] = iso639_str3_to_key("pus");
00804   codemap[iso639_str2_to_key2("qu")] = iso639_str3_to_key("que");
00805   codemap[iso639_str2_to_key2("rm")] = iso639_str3_to_key("roh");
00806   codemap[iso639_str2_to_key2("ro")] = iso639_str3_to_key("rum");
00807   codemap[iso639_str2_to_key2("rn")] = iso639_str3_to_key("run");
00808   codemap[iso639_str2_to_key2("ru")] = iso639_str3_to_key("rus");
00809   codemap[iso639_str2_to_key2("sg")] = iso639_str3_to_key("sag");
00810   codemap[iso639_str2_to_key2("sa")] = iso639_str3_to_key("san");
00811   codemap[iso639_str2_to_key2("sr")] = iso639_str3_to_key("scc");
00812   codemap[iso639_str2_to_key2("sr")] = iso639_str3_to_key("scc");
00813   codemap[iso639_str2_to_key2("hr")] = iso639_str3_to_key("scr");
00814   codemap[iso639_str2_to_key2("hr")] = iso639_str3_to_key("scr");
00815   codemap[iso639_str2_to_key2("si")] = iso639_str3_to_key("sin");
00816   codemap[iso639_str2_to_key2("sk")] = iso639_str3_to_key("slo");
00817   codemap[iso639_str2_to_key2("sl")] = iso639_str3_to_key("slv");
00818   codemap[iso639_str2_to_key2("se")] = iso639_str3_to_key("sme");
00819   codemap[iso639_str2_to_key2("sm")] = iso639_str3_to_key("smo");
00820   codemap[iso639_str2_to_key2("sn")] = iso639_str3_to_key("sna");
00821   codemap[iso639_str2_to_key2("sd")] = iso639_str3_to_key("snd");
00822   codemap[iso639_str2_to_key2("so")] = iso639_str3_to_key("som");
00823   codemap[iso639_str2_to_key2("st")] = iso639_str3_to_key("sot");
00824   codemap[iso639_str2_to_key2("es")] = iso639_str3_to_key("spa");
00825   codemap[iso639_str2_to_key2("sc")] = iso639_str3_to_key("srd");
00826   codemap[iso639_str2_to_key2("ss")] = iso639_str3_to_key("ssw");
00827   codemap[iso639_str2_to_key2("su")] = iso639_str3_to_key("sun");
00828   codemap[iso639_str2_to_key2("sw")] = iso639_str3_to_key("swa");
00829   codemap[iso639_str2_to_key2("sv")] = iso639_str3_to_key("swe");
00830   codemap[iso639_str2_to_key2("ty")] = iso639_str3_to_key("tah");
00831   codemap[iso639_str2_to_key2("ta")] = iso639_str3_to_key("tam");
00832   codemap[iso639_str2_to_key2("tt")] = iso639_str3_to_key("tat");
00833   codemap[iso639_str2_to_key2("te")] = iso639_str3_to_key("tel");
00834   codemap[iso639_str2_to_key2("tg")] = iso639_str3_to_key("tgk");
00835   codemap[iso639_str2_to_key2("tl")] = iso639_str3_to_key("tgl");
00836   codemap[iso639_str2_to_key2("th")] = iso639_str3_to_key("tha");
00837   codemap[iso639_str2_to_key2("bo")] = iso639_str3_to_key("tib");
00838   codemap[iso639_str2_to_key2("bo")] = iso639_str3_to_key("tib");
00839   codemap[iso639_str2_to_key2("ti")] = iso639_str3_to_key("tir");
00840   codemap[iso639_str2_to_key2("to")] = iso639_str3_to_key("ton");
00841   codemap[iso639_str2_to_key2("tn")] = iso639_str3_to_key("tsn");
00842   codemap[iso639_str2_to_key2("ts")] = iso639_str3_to_key("tso");
00843   codemap[iso639_str2_to_key2("tk")] = iso639_str3_to_key("tuk");
00844   codemap[iso639_str2_to_key2("tr")] = iso639_str3_to_key("tur");
00845   codemap[iso639_str2_to_key2("tw")] = iso639_str3_to_key("twi");
00846   codemap[iso639_str2_to_key2("ug")] = iso639_str3_to_key("uig");
00847   codemap[iso639_str2_to_key2("uk")] = iso639_str3_to_key("ukr");
00848   codemap[iso639_str2_to_key2("ur")] = iso639_str3_to_key("urd");
00849   codemap[iso639_str2_to_key2("uz")] = iso639_str3_to_key("uzb");
00850   codemap[iso639_str2_to_key2("ve")] = iso639_str3_to_key("ven");
00851   codemap[iso639_str2_to_key2("vi")] = iso639_str3_to_key("vie");
00852   codemap[iso639_str2_to_key2("vo")] = iso639_str3_to_key("vol");
00853   codemap[iso639_str2_to_key2("cy")] = iso639_str3_to_key("wel");
00854   codemap[iso639_str2_to_key2("cy")] = iso639_str3_to_key("wel");
00855   codemap[iso639_str2_to_key2("wa")] = iso639_str3_to_key("wln");
00856   codemap[iso639_str2_to_key2("wo")] = iso639_str3_to_key("wol");
00857   codemap[iso639_str2_to_key2("xh")] = iso639_str3_to_key("xho");
00858   codemap[iso639_str2_to_key2("yi")] = iso639_str3_to_key("yid");
00859   codemap[iso639_str2_to_key2("yo")] = iso639_str3_to_key("yor");
00860   codemap[iso639_str2_to_key2("za")] = iso639_str3_to_key("zha");
00861   codemap[iso639_str2_to_key2("zu")] = iso639_str3_to_key("zul");
00862   return 0;
00863 }
00864 
00865 /*
00866     The following has yet to be integrated with the preceeding code in a
00867     meaningful way but it is stored here because it provides ISO639 related
00868     functionality.
00869 */
00870 
00871 typedef QMap<QString, QString> ISO639ToNameMap;
00872 static ISO639ToNameMap createLanguageMap(void)
00873 {
00874     ISO639ToNameMap map;
00875     map["af"] = QString::fromUtf8("Afrikaans");
00876     map["am"] = QString::fromUtf8("አማርኛ");
00877     map["ar"] = QString::fromUtf8("العربية");
00878     map["as"] = QString::fromUtf8("অসমীয়া");
00879     map["az"] = QString::fromUtf8("Azərbaycan türkçəsi");
00880     map["be"] = QString::fromUtf8("Беларуская");
00881     map["bg"] = QString::fromUtf8("Български");
00882     map["bn"] = QString::fromUtf8("বাংলা");
00883     map["br"] = QString::fromUtf8("Brezhoneg");
00884     map["bs"] = QString::fromUtf8("Rumunjki");
00885     map["ca"] = QString::fromUtf8("català; valencià");
00886     map["cs"] = QString::fromUtf8("čeština");
00887     map["cy"] = QString::fromUtf8("Cymraeg");
00888     map["da"] = QString::fromUtf8("Dansk");
00889     map["de"] = QString::fromUtf8("Deutsch");
00890     map["el"] = QString::fromUtf8("Ελληνικά, Σύγχρονα");
00891     map["en"] = QString::fromUtf8("English");
00892     map["eo"] = QString::fromUtf8("Esperanto");
00893     map["es"] = QString::fromUtf8("Español; Castellano");
00894     map["et"] = QString::fromUtf8("Eesti");
00895     map["eu"] = QString::fromUtf8("Euskara");
00896     map["fa"] = QString::fromUtf8("فارسی");
00897     map["fi"] = QString::fromUtf8("suomi");
00898     map["fr"] = QString::fromUtf8("Français");
00899     map["ga"] = QString::fromUtf8("Gaeilge");
00900     map["gl"] = QString::fromUtf8("Galego");
00901     map["gu"] = QString::fromUtf8("ગુજરાતી");
00902     map["he"] = QString::fromUtf8("עברית");
00903     map["hi"] = QString::fromUtf8("हिंदी");
00904     map["hr"] = QString::fromUtf8("Hrvatski");
00905     map["hu"] = QString::fromUtf8("magyar");
00906     map["id"] = QString::fromUtf8("Bahasa Indonesia");
00907     map["is"] = QString::fromUtf8("Íslenska");
00908     map["it"] = QString::fromUtf8("Italiano");
00909     map["ja"] = QString::fromUtf8("日本語");
00910     map["kn"] = QString::fromUtf8("ಕನ್ನಡ");
00911     map["ko"] = QString::fromUtf8("한국어");
00912     map["lt"] = QString::fromUtf8("Lietuvių");
00913     map["lv"] = QString::fromUtf8("Latviešu");
00914     map["mi"] = QString::fromUtf8("Reo Māori");
00915     map["mk"] = QString::fromUtf8("Македонски");
00916     map["ml"] = QString::fromUtf8("മലയാളം");
00917     map["mn"] = QString::fromUtf8("Монгол");
00918     map["mr"] = QString::fromUtf8("मराठी");
00919     map["ms"] = QString::fromUtf8("Bahasa Melayu");
00920     map["mt"] = QString::fromUtf8("Malti");
00921     map["nb"] = QString::fromUtf8("Norsk, bokmål");
00922     map["nl"] = QString::fromUtf8("Nederlands");
00923     map["nn"] = QString::fromUtf8("Norsk (nynorsk)");
00924     map["oc"] = QString::fromUtf8("Occitan (aprèp 1500)");
00925     map["or"] = QString::fromUtf8("ଓଡିଆ");
00926     map["pa"] = QString::fromUtf8("ਪੰਜਾਬੀ");
00927     map["pl"] = QString::fromUtf8("polski");
00928     map["pt"] = QString::fromUtf8("Português");
00929     map["ro"] = QString::fromUtf8("Română");
00930     map["ru"] = QString::fromUtf8("русский");
00931     map["rw"] = QString::fromUtf8("Ikinyarwanda");
00932     map["sk"] = QString::fromUtf8("slovenčina");
00933     map["sl"] = QString::fromUtf8("slovenščina");
00934     map["sr"] = QString::fromUtf8("српски");
00935     map["sv"] = QString::fromUtf8("Svenska");
00936     map["ta"] = QString::fromUtf8("தமிழ்");
00937     map["te"] = QString::fromUtf8("తెలుగు");
00938     map["th"] = QString::fromUtf8("ไทย");
00939     map["ti"] = QString::fromUtf8("ትግርኛ");
00940     map["tr"] = QString::fromUtf8("Türkçe");
00941     map["tt"] = QString::fromUtf8("Tatarça");
00942     map["uk"] = QString::fromUtf8("українська");
00943     map["ve"] = QString::fromUtf8("Venda");
00944     map["vi"] = QString::fromUtf8("Tiếng Việt");
00945     map["wa"] = QString::fromUtf8("Walon");
00946     map["xh"] = QString::fromUtf8("isiXhosa");
00947     map["zh"] = QString::fromUtf8("漢語");
00948     map["zu"] = QString::fromUtf8("Isi-Zulu");
00949     return map;
00950 }
00951 
00952 static ISO639ToNameMap gLanguageMap;
00953 
00954 QString GetISO639LanguageName(QString iso639_1)
00955 {
00956     if (gLanguageMap.isEmpty())
00957         gLanguageMap = createLanguageMap();
00958 
00959     return gLanguageMap[iso639_1];
00960 }
00961 
00962 QString GetISO639EnglishLanguageName(QString iso639_1)
00963 {
00964     QString iso639_2 = iso639_str2_to_str3(iso639_1);
00965     int key2 = iso639_str3_to_key(iso639_2);
00966     return iso639_key_toName(key2);
00967 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends