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