|
MythTV
0.26-pre
|
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 }
1.7.6.1