00001
00002
00003
00004
00005
00006
00007
00008
00012 #include <iostream>
00013
00014 #include "zypp/base/Logger.h"
00015 #include "zypp/base/String.h"
00016 #include "zypp/base/Gettext.h"
00017 #include "zypp/base/Tr1hash.h"
00018
00019 #include "zypp/LanguageCode.h"
00020
00021 using std::endl;
00022
00024 namespace zypp
00025 {
00026
00028 namespace
00029 {
00030
00032 struct CodeMaps
00033 {
00034 typedef std::tr1::unordered_map<std::string,std::string> CodeMap;
00035 typedef CodeMap::const_iterator Index;
00036
00038 static Index getIndex( const std::string & code_r )
00039 {
00040 static CodeMaps _maps;
00041 return _maps.lookup( code_r );
00042 }
00043
00044 private:
00048 CodeMaps();
00049
00051 inline Index lookup( const std::string & code_r );
00052
00053 private:
00055 CodeMap codes;
00056 };
00057
00058 inline CodeMaps::Index CodeMaps::lookup( const std::string & code_r )
00059 {
00060 Index it = codes.find( code_r );
00061 if ( it != codes.end() )
00062 return it;
00063
00064
00065 CodeMap::value_type nval( code_r, std::string() );
00066
00067 if ( code_r.size() > 3 || code_r.size() < 2 )
00068 WAR << "Malformed LanguageCode '" << code_r << "' (expect 2 or 3-letter)" << endl;
00069
00070 std::string lcode( str::toLower( code_r ) );
00071 if ( lcode != code_r )
00072 {
00073 WAR << "Malformed LanguageCode '" << code_r << "' (not lower case)" << endl;
00074
00075
00076 it = codes.find( lcode );
00077 if ( it != codes.end() )
00078 nval.second = it->second;
00079 }
00080
00081 MIL << "Remember LanguageCode '" << code_r << "': '" << nval.second << "'" << endl;
00082 return codes.insert( nval ).first;
00083 }
00084
00086 }
00088
00090
00091
00092
00097 struct LanguageCode::Impl
00098 {
00099 Impl()
00100 : _index( CodeMaps::getIndex( std::string() ) )
00101 {}
00102
00103 Impl( const std::string & code_r )
00104 : _index( CodeMaps::getIndex( code_r ) )
00105 {}
00106
00107 std::string code() const
00108 { return _index->first; }
00109
00110 std::string name() const {
00111 if ( _index->second.empty() )
00112 {
00113 std::string ret( _("Unknown language: ") );
00114 ret += "'";
00115 ret += _index->first;
00116 ret += "'";
00117 return ret;
00118 }
00119 return _( _index->second.c_str() );
00120 }
00121
00122 private:
00124 CodeMaps::Index _index;
00125
00126 public:
00128 static shared_ptr<Impl> nullimpl()
00129 {
00130 static shared_ptr<Impl> _nullimpl( new Impl );
00131 return _nullimpl;
00132 }
00133 };
00135
00137
00138
00139
00141
00142 const LanguageCode LanguageCode::noCode;
00143
00145
00146
00147
00148
00149 LanguageCode::LanguageCode()
00150 : _pimpl( Impl::nullimpl() )
00151 {}
00152
00154
00155
00156
00157
00158 LanguageCode::LanguageCode( const std::string & code_r )
00159 : _pimpl( new Impl( code_r ) )
00160 {}
00161
00163
00164
00165
00166
00167 LanguageCode::~LanguageCode()
00168 {}
00169
00171
00172
00173
00174
00175 std::string LanguageCode::code() const
00176 { return _pimpl->code(); }
00177
00179
00180
00181
00182
00183 std::string LanguageCode::name() const
00184 { return _pimpl->name(); }
00185
00187 namespace
00188 {
00189
00190 CodeMaps::CodeMaps()
00191 {
00192
00193 codes[""] = N_("No Code");
00194
00195 struct LangInit
00196 {
00197 const char *iso639_2;
00198 const char *iso639_1;
00199 const char *name;
00200 };
00201
00202
00203
00204 const LangInit langInit[] = {
00205
00206 { "aar", "aa", N_( "Afar" ) },
00207
00208 { "abk", "ab", N_( "Abkhazian" ) },
00209
00210 { "ace", NULL, N_( "Achinese" ) },
00211
00212 { "ach", NULL, N_( "Acoli" ) },
00213
00214 { "ada", NULL, N_( "Adangme" ) },
00215
00216 { "ady", NULL, N_( "Adyghe" ) },
00217
00218 { "afa", NULL, N_( "Afro-Asiatic (Other)" ) },
00219
00220 { "afh", NULL, N_( "Afrihili" ) },
00221
00222 { "afr", "af", N_( "Afrikaans" ) },
00223
00224 { "ain", NULL, N_( "Ainu" ) },
00225
00226 { "aka", "ak", N_( "Akan" ) },
00227
00228 { "akk", NULL, N_( "Akkadian" ) },
00229
00230 { "alb", "sq", N_( "Albanian" ) },
00231
00232 { "sqi", NULL, N_( "Albanian" ) },
00233
00234 { "ale", NULL, N_( "Aleut" ) },
00235
00236 { "alg", NULL, N_( "Algonquian Languages" ) },
00237
00238 { "alt", NULL, N_( "Southern Altai" ) },
00239
00240 { "amh", "am", N_( "Amharic" ) },
00241
00242 { "ang", NULL, N_( "English, Old (ca.450-1100)" ) },
00243
00244 { "apa", NULL, N_( "Apache Languages" ) },
00245
00246 { "ara", "ar", N_( "Arabic" ) },
00247
00248 { "arc", NULL, N_( "Aramaic" ) },
00249
00250 { "arg", "an", N_( "Aragonese" ) },
00251
00252 { "arm", "hy", N_( "Armenian" ) },
00253
00254 { "hye", NULL, N_( "Armenian" ) },
00255
00256 { "arn", NULL, N_( "Araucanian" ) },
00257
00258 { "arp", NULL, N_( "Arapaho" ) },
00259
00260 { "art", NULL, N_( "Artificial (Other)" ) },
00261
00262 { "arw", NULL, N_( "Arawak" ) },
00263
00264 { "asm", "as", N_( "Assamese" ) },
00265
00266 { "ast", NULL, N_( "Asturian" ) },
00267
00268 { "ath", NULL, N_( "Athapascan Languages" ) },
00269
00270 { "aus", NULL, N_( "Australian Languages" ) },
00271
00272 { "ava", "av", N_( "Avaric" ) },
00273
00274 { "ave", "ae", N_( "Avestan" ) },
00275
00276 { "awa", NULL, N_( "Awadhi" ) },
00277
00278 { "aym", "ay", N_( "Aymara" ) },
00279
00280 { "aze", "az", N_( "Azerbaijani" ) },
00281
00282 { "bad", NULL, N_( "Banda" ) },
00283
00284 { "bai", NULL, N_( "Bamileke Languages" ) },
00285
00286 { "bak", "ba", N_( "Bashkir" ) },
00287
00288 { "bal", NULL, N_( "Baluchi" ) },
00289
00290 { "bam", "bm", N_( "Bambara" ) },
00291
00292 { "ban", NULL, N_( "Balinese" ) },
00293
00294 { "baq", "eu", N_( "Basque" ) },
00295
00296 { "eus", NULL, N_( "Basque" ) },
00297
00298 { "bas", NULL, N_( "Basa" ) },
00299
00300 { "bat", NULL, N_( "Baltic (Other)" ) },
00301
00302 { "bej", NULL, N_( "Beja" ) },
00303
00304 { "bel", "be", N_( "Belarusian" ) },
00305
00306 { "bem", NULL, N_( "Bemba" ) },
00307
00308 { "ben", "bn", N_( "Bengali" ) },
00309
00310 { "ber", NULL, N_( "Berber (Other)" ) },
00311
00312 { "bho", NULL, N_( "Bhojpuri" ) },
00313
00314 { "bih", "bh", N_( "Bihari" ) },
00315
00316 { "bik", NULL, N_( "Bikol" ) },
00317
00318 { "bin", NULL, N_( "Bini" ) },
00319
00320 { "bis", "bi", N_( "Bislama" ) },
00321
00322 { "bla", NULL, N_( "Siksika" ) },
00323
00324 { "bnt", NULL, N_( "Bantu (Other)" ) },
00325
00326 { "bos", "bs", N_( "Bosnian" ) },
00327
00328 { "bra", NULL, N_( "Braj" ) },
00329
00330 { "bre", "br", N_( "Breton" ) },
00331
00332 { "btk", NULL, N_( "Batak (Indonesia)" ) },
00333
00334 { "bua", NULL, N_( "Buriat" ) },
00335
00336 { "bug", NULL, N_( "Buginese" ) },
00337
00338 { "bul", "bg", N_( "Bulgarian" ) },
00339
00340 { "bur", "my", N_( "Burmese" ) },
00341
00342 { "mya", NULL, N_( "Burmese" ) },
00343
00344 { "byn", NULL, N_( "Blin" ) },
00345
00346 { "cad", NULL, N_( "Caddo" ) },
00347
00348 { "cai", NULL, N_( "Central American Indian (Other)" ) },
00349
00350 { "car", NULL, N_( "Carib" ) },
00351
00352 { "cat", "ca", N_( "Catalan" ) },
00353
00354 { "cau", NULL, N_( "Caucasian (Other)" ) },
00355
00356 { "ceb", NULL, N_( "Cebuano" ) },
00357
00358 { "cel", NULL, N_( "Celtic (Other)" ) },
00359
00360 { "cha", "ch", N_( "Chamorro" ) },
00361
00362 { "chb", NULL, N_( "Chibcha" ) },
00363
00364 { "che", "ce", N_( "Chechen" ) },
00365
00366 { "chg", NULL, N_( "Chagatai" ) },
00367
00368 { "chi", "zh", N_( "Chinese" ) },
00369
00370 { "zho", NULL, N_( "Chinese" ) },
00371
00372 { "chk", NULL, N_( "Chuukese" ) },
00373
00374 { "chm", NULL, N_( "Mari" ) },
00375
00376 { "chn", NULL, N_( "Chinook Jargon" ) },
00377
00378 { "cho", NULL, N_( "Choctaw" ) },
00379
00380 { "chp", NULL, N_( "Chipewyan" ) },
00381
00382 { "chr", NULL, N_( "Cherokee" ) },
00383
00384 { "chu", "cu", N_( "Church Slavic" ) },
00385
00386 { "chv", "cv", N_( "Chuvash" ) },
00387
00388 { "chy", NULL, N_( "Cheyenne" ) },
00389
00390 { "cmc", NULL, N_( "Chamic Languages" ) },
00391
00392 { "cop", NULL, N_( "Coptic" ) },
00393
00394 { "cor", "kw", N_( "Cornish" ) },
00395
00396 { "cos", "co", N_( "Corsican" ) },
00397
00398 { "cpe", NULL, N_( "Creoles and Pidgins, English-Based (Other)" ) },
00399
00400 { "cpf", NULL, N_( "Creoles and Pidgins, French-Based (Other)" ) },
00401
00402 { "cpp", NULL, N_( "Creoles and Pidgins, Portuguese-Based (Other)" ) },
00403
00404 { "cre", "cr", N_( "Cree" ) },
00405
00406 { "crh", NULL, N_( "Crimean Tatar" ) },
00407
00408 { "crp", NULL, N_( "Creoles and Pidgins (Other)" ) },
00409
00410 { "csb", NULL, N_( "Kashubian" ) },
00411
00412 { "cus", NULL, N_( "Cushitic (Other)" ) },
00413
00414 { "cze", "cs", N_( "Czech" ) },
00415
00416 { "ces", NULL, N_( "Czech" ) },
00417
00418 { "dak", NULL, N_( "Dakota" ) },
00419
00420 { "dan", "da", N_( "Danish" ) },
00421
00422 { "dar", NULL, N_( "Dargwa" ) },
00423
00424 { "day", NULL, N_( "Dayak" ) },
00425
00426 { "del", NULL, N_( "Delaware" ) },
00427
00428 { "den", NULL, N_( "Slave (Athapascan)" ) },
00429
00430 { "dgr", NULL, N_( "Dogrib" ) },
00431
00432 { "din", NULL, N_( "Dinka" ) },
00433
00434 { "div", "dv", N_( "Divehi" ) },
00435
00436 { "doi", NULL, N_( "Dogri" ) },
00437
00438 { "dra", NULL, N_( "Dravidian (Other)" ) },
00439
00440 { "dsb", NULL, N_( "Lower Sorbian" ) },
00441
00442 { "dua", NULL, N_( "Duala" ) },
00443
00444 { "dum", NULL, N_( "Dutch, Middle (ca.1050-1350)" ) },
00445
00446 { "dut", "nl", N_( "Dutch" ) },
00447
00448 { "nld", NULL, N_( "Dutch" ) },
00449
00450 { "dyu", NULL, N_( "Dyula" ) },
00451
00452 { "dzo", "dz", N_( "Dzongkha" ) },
00453
00454 { "efi", NULL, N_( "Efik" ) },
00455
00456 { "egy", NULL, N_( "Egyptian (Ancient)" ) },
00457
00458 { "eka", NULL, N_( "Ekajuk" ) },
00459
00460 { "elx", NULL, N_( "Elamite" ) },
00461
00462 { "eng", "en", N_( "English" ) },
00463
00464 { "enm", NULL, N_( "English, Middle (1100-1500)" ) },
00465
00466 { "epo", "eo", N_( "Esperanto" ) },
00467
00468 { "est", "et", N_( "Estonian" ) },
00469
00470 { "ewe", "ee", N_( "Ewe" ) },
00471
00472 { "ewo", NULL, N_( "Ewondo" ) },
00473
00474 { "fan", NULL, N_( "Fang" ) },
00475
00476 { "fao", "fo", N_( "Faroese" ) },
00477
00478 { "fat", NULL, N_( "Fanti" ) },
00479
00480 { "fij", "fj", N_( "Fijian" ) },
00481
00482 { "fil", NULL, N_( "Filipino" ) },
00483
00484 { "fin", "fi", N_( "Finnish" ) },
00485
00486 { "fiu", NULL, N_( "Finno-Ugrian (Other)" ) },
00487
00488 { "fon", NULL, N_( "Fon" ) },
00489
00490 { "fre", "fr", N_( "French" ) },
00491
00492 { "fra", NULL, N_( "French" ) },
00493
00494 { "frm", NULL, N_( "French, Middle (ca.1400-1600)" ) },
00495
00496 { "fro", NULL, N_( "French, Old (842-ca.1400)" ) },
00497
00498 { "fry", "fy", N_( "Frisian" ) },
00499
00500 { "ful", "ff", N_( "Fulah" ) },
00501
00502 { "fur", NULL, N_( "Friulian" ) },
00503
00504 { "gaa", NULL, N_( "Ga" ) },
00505
00506 { "gay", NULL, N_( "Gayo" ) },
00507
00508 { "gba", NULL, N_( "Gbaya" ) },
00509
00510 { "gem", NULL, N_( "Germanic (Other)" ) },
00511
00512 { "geo", "ka", N_( "Georgian" ) },
00513
00514 { "kat", NULL, N_( "Georgian" ) },
00515
00516 { "ger", "de", N_( "German" ) },
00517
00518 { "deu", NULL, N_( "German" ) },
00519
00520 { "gez", NULL, N_( "Geez" ) },
00521
00522 { "gil", NULL, N_( "Gilbertese" ) },
00523
00524 { "gla", "gd", N_( "Gaelic" ) },
00525
00526 { "gle", "ga", N_( "Irish" ) },
00527
00528 { "glg", "gl", N_( "Galician" ) },
00529
00530 { "glv", "gv", N_( "Manx" ) },
00531
00532 { "gmh", NULL, N_( "German, Middle High (ca.1050-1500)" ) },
00533
00534 { "goh", NULL, N_( "German, Old High (ca.750-1050)" ) },
00535
00536 { "gon", NULL, N_( "Gondi" ) },
00537
00538 { "gor", NULL, N_( "Gorontalo" ) },
00539
00540 { "got", NULL, N_( "Gothic" ) },
00541
00542 { "grb", NULL, N_( "Grebo" ) },
00543
00544 { "grc", NULL, N_( "Greek, Ancient (to 1453)" ) },
00545
00546 { "gre", "el", N_( "Greek, Modern (1453-)" ) },
00547
00548 { "ell", NULL, N_( "Greek, Modern (1453-)" ) },
00549
00550 { "grn", "gn", N_( "Guarani" ) },
00551
00552 { "guj", "gu", N_( "Gujarati" ) },
00553
00554 { "gwi", NULL, N_( "Gwich'in" ) },
00555
00556 { "hai", NULL, N_( "Haida" ) },
00557
00558 { "hat", "ht", N_( "Haitian" ) },
00559
00560 { "hau", "ha", N_( "Hausa" ) },
00561
00562 { "haw", NULL, N_( "Hawaiian" ) },
00563
00564 { "heb", "he", N_( "Hebrew" ) },
00565
00566 { "her", "hz", N_( "Herero" ) },
00567
00568 { "hil", NULL, N_( "Hiligaynon" ) },
00569
00570 { "him", NULL, N_( "Himachali" ) },
00571
00572 { "hin", "hi", N_( "Hindi" ) },
00573
00574 { "hit", NULL, N_( "Hittite" ) },
00575
00576 { "hmn", NULL, N_( "Hmong" ) },
00577
00578 { "hmo", "ho", N_( "Hiri Motu" ) },
00579
00580 { "hsb", NULL, N_( "Upper Sorbian" ) },
00581
00582 { "hun", "hu", N_( "Hungarian" ) },
00583
00584 { "hup", NULL, N_( "Hupa" ) },
00585
00586 { "iba", NULL, N_( "Iban" ) },
00587
00588 { "ibo", "ig", N_( "Igbo" ) },
00589
00590 { "ice", "is", N_( "Icelandic" ) },
00591
00592 { "isl", NULL, N_( "Icelandic" ) },
00593
00594 { "ido", "io", N_( "Ido" ) },
00595
00596 { "iii", "ii", N_( "Sichuan Yi" ) },
00597
00598 { "ijo", NULL, N_( "Ijo" ) },
00599
00600 { "iku", "iu", N_( "Inuktitut" ) },
00601
00602 { "ile", "ie", N_( "Interlingue" ) },
00603
00604 { "ilo", NULL, N_( "Iloko" ) },
00605
00606 { "ina", "ia", N_( "Interlingua (International Auxiliary Language Association)" ) },
00607
00608 { "inc", NULL, N_( "Indic (Other)" ) },
00609
00610 { "ind", "id", N_( "Indonesian" ) },
00611
00612 { "ine", NULL, N_( "Indo-European (Other)" ) },
00613
00614 { "inh", NULL, N_( "Ingush" ) },
00615
00616 { "ipk", "ik", N_( "Inupiaq" ) },
00617
00618 { "ira", NULL, N_( "Iranian (Other)" ) },
00619
00620 { "iro", NULL, N_( "Iroquoian Languages" ) },
00621
00622 { "ita", "it", N_( "Italian" ) },
00623
00624 { "jav", "jv", N_( "Javanese" ) },
00625
00626 { "jbo", NULL, N_( "Lojban" ) },
00627
00628 { "jpn", "ja", N_( "Japanese" ) },
00629
00630 { "jpr", NULL, N_( "Judeo-Persian" ) },
00631
00632 { "jrb", NULL, N_( "Judeo-Arabic" ) },
00633
00634 { "kaa", NULL, N_( "Kara-Kalpak" ) },
00635
00636 { "kab", NULL, N_( "Kabyle" ) },
00637
00638 { "kac", NULL, N_( "Kachin" ) },
00639
00640 { "kal", "kl", N_( "Kalaallisut" ) },
00641
00642 { "kam", NULL, N_( "Kamba" ) },
00643
00644 { "kan", "kn", N_( "Kannada" ) },
00645
00646 { "kar", NULL, N_( "Karen" ) },
00647
00648 { "kas", "ks", N_( "Kashmiri" ) },
00649
00650 { "kau", "kr", N_( "Kanuri" ) },
00651
00652 { "kaw", NULL, N_( "Kawi" ) },
00653
00654 { "kaz", "kk", N_( "Kazakh" ) },
00655
00656 { "kbd", NULL, N_( "Kabardian" ) },
00657
00658 { "kha", NULL, N_( "Khasi" ) },
00659
00660 { "khi", NULL, N_( "Khoisan (Other)" ) },
00661
00662 { "khm", "km", N_( "Khmer" ) },
00663
00664 { "kho", NULL, N_( "Khotanese" ) },
00665
00666 { "kik", "ki", N_( "Kikuyu" ) },
00667
00668 { "kin", "rw", N_( "Kinyarwanda" ) },
00669
00670 { "kir", "ky", N_( "Kirghiz" ) },
00671
00672 { "kmb", NULL, N_( "Kimbundu" ) },
00673
00674 { "kok", NULL, N_( "Konkani" ) },
00675
00676 { "kom", "kv", N_( "Komi" ) },
00677
00678 { "kon", "kg", N_( "Kongo" ) },
00679
00680 { "kor", "ko", N_( "Korean" ) },
00681
00682 { "kos", NULL, N_( "Kosraean" ) },
00683
00684 { "kpe", NULL, N_( "Kpelle" ) },
00685
00686 { "krc", NULL, N_( "Karachay-Balkar" ) },
00687
00688 { "kro", NULL, N_( "Kru" ) },
00689
00690 { "kru", NULL, N_( "Kurukh" ) },
00691
00692 { "kua", "kj", N_( "Kuanyama" ) },
00693
00694 { "kum", NULL, N_( "Kumyk" ) },
00695
00696 { "kur", "ku", N_( "Kurdish" ) },
00697
00698 { "kut", NULL, N_( "Kutenai" ) },
00699
00700 { "lad", NULL, N_( "Ladino" ) },
00701
00702 { "lah", NULL, N_( "Lahnda" ) },
00703
00704 { "lam", NULL, N_( "Lamba" ) },
00705
00706 { "lao", "lo", N_( "Lao" ) },
00707
00708 { "lat", "la", N_( "Latin" ) },
00709
00710 { "lav", "lv", N_( "Latvian" ) },
00711
00712 { "lez", NULL, N_( "Lezghian" ) },
00713
00714 { "lim", "li", N_( "Limburgan" ) },
00715
00716 { "lin", "ln", N_( "Lingala" ) },
00717
00718 { "lit", "lt", N_( "Lithuanian" ) },
00719
00720 { "lol", NULL, N_( "Mongo" ) },
00721
00722 { "loz", NULL, N_( "Lozi" ) },
00723
00724 { "ltz", "lb", N_( "Luxembourgish" ) },
00725
00726 { "lua", NULL, N_( "Luba-Lulua" ) },
00727
00728 { "lub", "lu", N_( "Luba-Katanga" ) },
00729
00730 { "lug", "lg", N_( "Ganda" ) },
00731
00732 { "lui", NULL, N_( "Luiseno" ) },
00733
00734 { "lun", NULL, N_( "Lunda" ) },
00735
00736 { "luo", NULL, N_( "Luo (Kenya and Tanzania)" ) },
00737
00738 { "lus", NULL, N_( "Lushai" ) },
00739
00740 { "mac", "mk", N_( "Macedonian" ) },
00741
00742 { "mkd", NULL, N_( "Macedonian" ) },
00743
00744 { "mad", NULL, N_( "Madurese" ) },
00745
00746 { "mag", NULL, N_( "Magahi" ) },
00747
00748 { "mah", "mh", N_( "Marshallese" ) },
00749
00750 { "mai", NULL, N_( "Maithili" ) },
00751
00752 { "mak", NULL, N_( "Makasar" ) },
00753
00754 { "mal", "ml", N_( "Malayalam" ) },
00755
00756 { "man", NULL, N_( "Mandingo" ) },
00757
00758 { "mao", "mi", N_( "Maori" ) },
00759
00760 { "mri", NULL, N_( "Maori" ) },
00761
00762 { "map", NULL, N_( "Austronesian (Other)" ) },
00763
00764 { "mar", "mr", N_( "Marathi" ) },
00765
00766 { "mas", NULL, N_( "Masai" ) },
00767
00768 { "may", "ms", N_( "Malay" ) },
00769
00770 { "msa", NULL, N_( "Malay" ) },
00771
00772 { "mdf", NULL, N_( "Moksha" ) },
00773
00774 { "mdr", NULL, N_( "Mandar" ) },
00775
00776 { "men", NULL, N_( "Mende" ) },
00777
00778 { "mga", NULL, N_( "Irish, Middle (900-1200)" ) },
00779
00780 { "mic", NULL, N_( "Mi'kmaq" ) },
00781
00782 { "min", NULL, N_( "Minangkabau" ) },
00783
00784 { "mis", NULL, N_( "Miscellaneous Languages" ) },
00785
00786 { "mkh", NULL, N_( "Mon-Khmer (Other)" ) },
00787
00788 { "mlg", "mg", N_( "Malagasy" ) },
00789
00790 { "mlt", "mt", N_( "Maltese" ) },
00791
00792 { "mnc", NULL, N_( "Manchu" ) },
00793
00794 { "mni", NULL, N_( "Manipuri" ) },
00795
00796 { "mno", NULL, N_( "Manobo Languages" ) },
00797
00798 { "moh", NULL, N_( "Mohawk" ) },
00799
00800 { "mol", "mo", N_( "Moldavian" ) },
00801
00802 { "mon", "mn", N_( "Mongolian" ) },
00803
00804 { "mos", NULL, N_( "Mossi" ) },
00805
00806 { "mul", NULL, N_( "Multiple Languages" ) },
00807
00808 { "mun", NULL, N_( "Munda languages" ) },
00809
00810 { "mus", NULL, N_( "Creek" ) },
00811
00812 { "mwl", NULL, N_( "Mirandese" ) },
00813
00814 { "mwr", NULL, N_( "Marwari" ) },
00815
00816 { "myn", NULL, N_( "Mayan Languages" ) },
00817
00818 { "myv", NULL, N_( "Erzya" ) },
00819
00820 { "nah", NULL, N_( "Nahuatl" ) },
00821
00822 { "nai", NULL, N_( "North American Indian" ) },
00823
00824 { "nap", NULL, N_( "Neapolitan" ) },
00825
00826 { "nau", "na", N_( "Nauru" ) },
00827
00828 { "nav", "nv", N_( "Navajo" ) },
00829
00830 { "nbl", "nr", N_( "Ndebele, South" ) },
00831
00832 { "nde", "nd", N_( "Ndebele, North" ) },
00833
00834 { "ndo", "ng", N_( "Ndonga" ) },
00835
00836 { "nds", NULL, N_( "Low German" ) },
00837
00838 { "nep", "ne", N_( "Nepali" ) },
00839
00840 { "new", NULL, N_( "Nepal Bhasa" ) },
00841
00842 { "nia", NULL, N_( "Nias" ) },
00843
00844 { "nic", NULL, N_( "Niger-Kordofanian (Other)" ) },
00845
00846 { "niu", NULL, N_( "Niuean" ) },
00847
00848 { "nno", "nn", N_( "Norwegian Nynorsk" ) },
00849
00850 { "nob", "nb", N_( "Norwegian Bokmal" ) },
00851
00852 { "nog", NULL, N_( "Nogai" ) },
00853
00854 { "non", NULL, N_( "Norse, Old" ) },
00855
00856 { "nor", "no", N_( "Norwegian" ) },
00857
00858 { "nso", NULL, N_( "Northern Sotho" ) },
00859
00860 { "nub", NULL, N_( "Nubian Languages" ) },
00861
00862 { "nwc", NULL, N_( "Classical Newari" ) },
00863
00864 { "nya", "ny", N_( "Chichewa" ) },
00865
00866 { "nym", NULL, N_( "Nyamwezi" ) },
00867
00868 { "nyn", NULL, N_( "Nyankole" ) },
00869
00870 { "nyo", NULL, N_( "Nyoro" ) },
00871
00872 { "nzi", NULL, N_( "Nzima" ) },
00873
00874 { "oci", "oc", N_( "Occitan (post 1500)" ) },
00875
00876 { "oji", "oj", N_( "Ojibwa" ) },
00877
00878 { "ori", "or", N_( "Oriya" ) },
00879
00880 { "orm", "om", N_( "Oromo" ) },
00881
00882 { "osa", NULL, N_( "Osage" ) },
00883
00884 { "oss", "os", N_( "Ossetian" ) },
00885
00886 { "ota", NULL, N_( "Turkish, Ottoman (1500-1928)" ) },
00887
00888 { "oto", NULL, N_( "Otomian Languages" ) },
00889
00890 { "paa", NULL, N_( "Papuan (Other)" ) },
00891
00892 { "pag", NULL, N_( "Pangasinan" ) },
00893
00894 { "pal", NULL, N_( "Pahlavi" ) },
00895
00896 { "pam", NULL, N_( "Pampanga" ) },
00897
00898 { "pan", "pa", N_( "Panjabi" ) },
00899
00900 { "pap", NULL, N_( "Papiamento" ) },
00901
00902 { "pau", NULL, N_( "Palauan" ) },
00903
00904 { "peo", NULL, N_( "Persian, Old (ca.600-400 B.C.)" ) },
00905
00906 { "per", "fa", N_( "Persian" ) },
00907
00908 { "fas", NULL, N_( "Persian" ) },
00909
00910 { "phi", NULL, N_( "Philippine (Other)" ) },
00911
00912 { "phn", NULL, N_( "Phoenician" ) },
00913
00914 { "pli", "pi", N_( "Pali" ) },
00915
00916 { "pol", "pl", N_( "Polish" ) },
00917
00918 { "pon", NULL, N_( "Pohnpeian" ) },
00919
00920 { "por", "pt", N_( "Portuguese" ) },
00921
00922 { "pra", NULL, N_( "Prakrit Languages" ) },
00923
00924 { "pro", NULL, N_( "Provencal, Old (to 1500)" ) },
00925
00926 { "pus", "ps", N_( "Pushto" ) },
00927
00928 { "que", "qu", N_( "Quechua" ) },
00929
00930 { "raj", NULL, N_( "Rajasthani" ) },
00931
00932 { "rap", NULL, N_( "Rapanui" ) },
00933
00934 { "rar", NULL, N_( "Rarotongan" ) },
00935
00936 { "roa", NULL, N_( "Romance (Other)" ) },
00937
00938 { "roh", "rm", N_( "Raeto-Romance" ) },
00939
00940 { "rom", NULL, N_( "Romany" ) },
00941
00942 { "rum", "ro", N_( "Romanian" ) },
00943
00944 { "ron", NULL, N_( "Romanian" ) },
00945
00946 { "run", "rn", N_( "Rundi" ) },
00947
00948 { "rus", "ru", N_( "Russian" ) },
00949
00950 { "sad", NULL, N_( "Sandawe" ) },
00951
00952 { "sag", "sg", N_( "Sango" ) },
00953
00954 { "sah", NULL, N_( "Yakut" ) },
00955
00956 { "sai", NULL, N_( "South American Indian (Other)" ) },
00957
00958 { "sal", NULL, N_( "Salishan Languages" ) },
00959
00960 { "sam", NULL, N_( "Samaritan Aramaic" ) },
00961
00962 { "san", "sa", N_( "Sanskrit" ) },
00963
00964 { "sas", NULL, N_( "Sasak" ) },
00965
00966 { "sat", NULL, N_( "Santali" ) },
00967
00968 { "scc", "sr", N_( "Serbian" ) },
00969
00970 { "srp", NULL, N_( "Serbian" ) },
00971
00972 { "scn", NULL, N_( "Sicilian" ) },
00973
00974 { "sco", NULL, N_( "Scots" ) },
00975
00976 { "scr", "hr", N_( "Croatian" ) },
00977
00978 { "hrv", NULL, N_( "Croatian" ) },
00979
00980 { "sel", NULL, N_( "Selkup" ) },
00981
00982 { "sem", NULL, N_( "Semitic (Other)" ) },
00983
00984 { "sga", NULL, N_( "Irish, Old (to 900)" ) },
00985
00986 { "sgn", NULL, N_( "Sign Languages" ) },
00987
00988 { "shn", NULL, N_( "Shan" ) },
00989
00990 { "sid", NULL, N_( "Sidamo" ) },
00991
00992 { "sin", "si", N_( "Sinhala" ) },
00993
00994 { "sio", NULL, N_( "Siouan Languages" ) },
00995
00996 { "sit", NULL, N_( "Sino-Tibetan (Other)" ) },
00997
00998 { "sla", NULL, N_( "Slavic (Other)" ) },
00999
01000 { "slo", "sk", N_( "Slovak" ) },
01001
01002 { "slk", NULL, N_( "Slovak" ) },
01003
01004 { "slv", "sl", N_( "Slovenian" ) },
01005
01006 { "sma", NULL, N_( "Southern Sami" ) },
01007
01008 { "sme", "se", N_( "Northern Sami" ) },
01009
01010 { "smi", NULL, N_( "Sami Languages (Other)" ) },
01011
01012 { "smj", NULL, N_( "Lule Sami" ) },
01013
01014 { "smn", NULL, N_( "Inari Sami" ) },
01015
01016 { "smo", "sm", N_( "Samoan" ) },
01017
01018 { "sms", NULL, N_( "Skolt Sami" ) },
01019
01020 { "sna", "sn", N_( "Shona" ) },
01021
01022 { "snd", "sd", N_( "Sindhi" ) },
01023
01024 { "snk", NULL, N_( "Soninke" ) },
01025
01026 { "sog", NULL, N_( "Sogdian" ) },
01027
01028 { "som", "so", N_( "Somali" ) },
01029
01030 { "son", NULL, N_( "Songhai" ) },
01031
01032 { "sot", "st", N_( "Sotho, Southern" ) },
01033
01034 { "spa", "es", N_( "Spanish" ) },
01035
01036 { "srd", "sc", N_( "Sardinian" ) },
01037
01038 { "srr", NULL, N_( "Serer" ) },
01039
01040 { "ssa", NULL, N_( "Nilo-Saharan (Other)" ) },
01041
01042 { "ssw", "ss", N_( "Swati" ) },
01043
01044 { "suk", NULL, N_( "Sukuma" ) },
01045
01046 { "sun", "su", N_( "Sundanese" ) },
01047
01048 { "sus", NULL, N_( "Susu" ) },
01049
01050 { "sux", NULL, N_( "Sumerian" ) },
01051
01052 { "swa", "sw", N_( "Swahili" ) },
01053
01054 { "swe", "sv", N_( "Swedish" ) },
01055
01056 { "syr", NULL, N_( "Syriac" ) },
01057
01058 { "tah", "ty", N_( "Tahitian" ) },
01059
01060 { "tai", NULL, N_( "Tai (Other)" ) },
01061
01062 { "tam", "ta", N_( "Tamil" ) },
01063
01064 { "tat", "tt", N_( "Tatar" ) },
01065
01066 { "tel", "te", N_( "Telugu" ) },
01067
01068 { "tem", NULL, N_( "Timne" ) },
01069
01070 { "ter", NULL, N_( "Tereno" ) },
01071
01072 { "tet", NULL, N_( "Tetum" ) },
01073
01074 { "tgk", "tg", N_( "Tajik" ) },
01075
01076 { "tgl", "tl", N_( "Tagalog" ) },
01077
01078 { "tha", "th", N_( "Thai" ) },
01079
01080 { "tib", "bo", N_( "Tibetan" ) },
01081
01082 { "bod", NULL, N_( "Tibetan" ) },
01083
01084 { "tig", NULL, N_( "Tigre" ) },
01085
01086 { "tir", "ti", N_( "Tigrinya" ) },
01087
01088 { "tiv", NULL, N_( "Tiv" ) },
01089
01090 { "tkl", NULL, N_( "Tokelau" ) },
01091
01092 { "tlh", NULL, N_( "Klingon" ) },
01093
01094 { "tli", NULL, N_( "Tlingit" ) },
01095
01096 { "tmh", NULL, N_( "Tamashek" ) },
01097
01098 { "tog", NULL, N_( "Tonga (Nyasa)" ) },
01099
01100 { "ton", "to", N_( "Tonga (Tonga Islands)" ) },
01101
01102 { "tpi", NULL, N_( "Tok Pisin" ) },
01103
01104 { "tsi", NULL, N_( "Tsimshian" ) },
01105
01106 { "tsn", "tn", N_( "Tswana" ) },
01107
01108 { "tso", "ts", N_( "Tsonga" ) },
01109
01110 { "tuk", "tk", N_( "Turkmen" ) },
01111
01112 { "tum", NULL, N_( "Tumbuka" ) },
01113
01114 { "tup", NULL, N_( "Tupi Languages" ) },
01115
01116 { "tur", "tr", N_( "Turkish" ) },
01117
01118 { "tut", NULL, N_( "Altaic (Other)" ) },
01119
01120 { "tvl", NULL, N_( "Tuvalu" ) },
01121
01122 { "twi", "tw", N_( "Twi" ) },
01123
01124 { "tyv", NULL, N_( "Tuvinian" ) },
01125
01126 { "udm", NULL, N_( "Udmurt" ) },
01127
01128 { "uga", NULL, N_( "Ugaritic" ) },
01129
01130 { "uig", "ug", N_( "Uighur" ) },
01131
01132 { "ukr", "uk", N_( "Ukrainian" ) },
01133
01134 { "umb", NULL, N_( "Umbundu" ) },
01135
01136 { "und", NULL, N_( "Undetermined" ) },
01137
01138 { "urd", "ur", N_( "Urdu" ) },
01139
01140 { "uzb", "uz", N_( "Uzbek" ) },
01141
01142 { "vai", NULL, N_( "Vai" ) },
01143
01144 { "ven", "ve", N_( "Venda" ) },
01145
01146 { "vie", "vi", N_( "Vietnamese" ) },
01147
01148 { "vol", "vo", N_( "Volapuk" ) },
01149
01150 { "vot", NULL, N_( "Votic" ) },
01151
01152 { "wak", NULL, N_( "Wakashan Languages" ) },
01153
01154 { "wal", NULL, N_( "Walamo" ) },
01155
01156 { "war", NULL, N_( "Waray" ) },
01157
01158 { "was", NULL, N_( "Washo" ) },
01159
01160 { "wel", "cy", N_( "Welsh" ) },
01161
01162 { "cym", NULL, N_( "Welsh" ) },
01163
01164 { "wen", NULL, N_( "Sorbian Languages" ) },
01165
01166 { "wln", "wa", N_( "Walloon" ) },
01167
01168 { "wol", "wo", N_( "Wolof" ) },
01169
01170 { "xal", NULL, N_( "Kalmyk" ) },
01171
01172 { "xho", "xh", N_( "Xhosa" ) },
01173
01174 { "yao", NULL, N_( "Yao" ) },
01175
01176 { "yap", NULL, N_( "Yapese" ) },
01177
01178 { "yid", "yi", N_( "Yiddish" ) },
01179
01180 { "yor", "yo", N_( "Yoruba" ) },
01181
01182 { "ypk", NULL, N_( "Yupik Languages" ) },
01183
01184 { "zap", NULL, N_( "Zapotec" ) },
01185
01186 { "zen", NULL, N_( "Zenaga" ) },
01187
01188 { "zha", "za", N_( "Zhuang" ) },
01189
01190 { "znd", NULL, N_( "Zande" ) },
01191
01192 { "zul", "zu", N_( "Zulu" ) },
01193
01194 { "zun", NULL, N_( "Zuni" ) },
01195
01196 { NULL, NULL, NULL }
01197 };
01198
01199 for (const LangInit * i = langInit; i->iso639_2 != NULL; ++i)
01200 {
01201 std::string name( i->name );
01202 codes[i->iso639_2] = name;
01203 if (i->iso639_1 != NULL)
01204 codes[i->iso639_1] = name;
01205 }
01206 }
01207
01209 }
01211
01213 }