LanguageCode.cc

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

Generated on Thu Jul 6 00:07:21 2006 for zypp by  doxygen 1.4.6