1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/LanguageCode.cc
15 #include "zypp/base/Logger.h"
16 #include "zypp/base/String.h"
17 #include "zypp/base/Gettext.h"
19 #include "zypp/LanguageCode.h"
23 ///////////////////////////////////////////////////////////////////
25 { /////////////////////////////////////////////////////////////////
27 ///////////////////////////////////////////////////////////////////
29 { /////////////////////////////////////////////////////////////////
31 /** Wrap static codemap data. */
32 struct CodeMaps // singleton
34 typedef std::map<std::string,std::string> CodeMap;
35 typedef CodeMap::const_iterator Index;
37 /** Return the CodeMap Index for \a code_r. */
38 static Index getIndex( const std::string & code_r )
40 static CodeMaps _maps; // the singleton instance
41 return _maps.lookup( code_r );
45 /** Ctor initializes the code maps.
46 * http://www.loc.gov/standards/iso639-2/ISO-639-2_values_8bits.txt
50 /** Make shure the code is in the code maps and return it's index. */
51 inline Index lookup( const std::string & code_r );
53 /** Return index of \a code_r, if it's in the code maps. */
54 inline Index lookupCode( const std::string & code_r );
57 /** Two letter codes. */
59 /** Three letter codes. */
61 /** All the stuff the application injects. */
65 inline CodeMaps::Index CodeMaps::lookupCode( const std::string & code_r )
67 switch ( code_r.size() )
71 Index it = iso639_1.find( code_r );
72 if ( it != iso639_1.end() )
79 Index it = iso639_2.find( code_r );
80 if ( it != iso639_2.end() )
85 // not found: check others
86 // !!! not found at all returns others.end()
87 return others.find( code_r );
90 inline CodeMaps::Index CodeMaps::lookup( const std::string & code_r )
92 Index it = lookupCode( code_r );
93 if ( it != others.end() )
96 // not found: Remember a new code
97 CodeMap::value_type nval( code_r, std::string() );
99 if ( code_r.size() > 3 || code_r.size() < 2 )
100 WAR << "Malformed LanguageCode '" << code_r << "' (expect 2 or 3-letter)" << endl;
102 std::string lcode( str::toLower( code_r ) );
103 if ( lcode != code_r )
105 WAR << "Malformed LanguageCode '" << code_r << "' (not lower case)" << endl;
106 // but maybe we're lucky with the lower case code
107 // and find a language name.
108 it = lookupCode( lcode );
109 if ( it != others.end() )
110 nval.second = it->second;
113 MIL << "Remember LanguageCode '" << code_r << "': '" << nval.second << "'" << endl;
114 return others.insert( nval ).first;
117 /////////////////////////////////////////////////////////////////
119 ///////////////////////////////////////////////////////////////////
121 ///////////////////////////////////////////////////////////////////
123 // CLASS NAME : LanguageCode::Impl
125 /** LanguageCode implementation.
126 * \note CodeMaps contain the untranslated language names.
127 * Translation is done in \ref name.
129 struct LanguageCode::Impl
132 : _index( CodeMaps::getIndex( std::string() ) )
135 Impl( const std::string & code_r )
136 : _index( CodeMaps::getIndex( code_r ) )
139 std::string code() const
140 { return _index->first; }
142 std::string name() const {
143 if ( _index->second.empty() )
145 std::string ret( _("Unknown language: ") );
147 ret += _index->first;
151 return _( _index->second.c_str() );
155 /** index into code map. */
156 CodeMaps::Index _index;
159 /** Offer default Impl. */
160 static shared_ptr<Impl> nullimpl()
162 static shared_ptr<Impl> _nullimpl( new Impl );
166 ///////////////////////////////////////////////////////////////////
168 ///////////////////////////////////////////////////////////////////
170 // CLASS NAME : LanguageCode
172 ///////////////////////////////////////////////////////////////////
174 const LanguageCode LanguageCode::noCode;
175 const LanguageCode LanguageCode::useDefault( "default" );
177 ///////////////////////////////////////////////////////////////////
179 // METHOD NAME : LanguageCode::LanguageCode
180 // METHOD TYPE : Ctor
182 LanguageCode::LanguageCode()
183 : _pimpl( Impl::nullimpl() )
186 ///////////////////////////////////////////////////////////////////
188 // METHOD NAME : LanguageCode::LanguageCode
189 // METHOD TYPE : Ctor
191 LanguageCode::LanguageCode( const std::string & code_r )
192 : _pimpl( new Impl( code_r ) )
195 ///////////////////////////////////////////////////////////////////
197 // METHOD NAME : LanguageCode::~LanguageCode
198 // METHOD TYPE : Dtor
200 LanguageCode::~LanguageCode()
203 ///////////////////////////////////////////////////////////////////
205 // METHOD NAME : LanguageCode::code
206 // METHOD TYPE : std::string
208 std::string LanguageCode::code() const
209 { return _pimpl->code(); }
211 ///////////////////////////////////////////////////////////////////
213 // METHOD NAME : LanguageCode::name
214 // METHOD TYPE : std::string
216 std::string LanguageCode::name() const
217 { return _pimpl->name(); }
219 ///////////////////////////////////////////////////////////////////
221 { /////////////////////////////////////////////////////////////////
225 // Defined LanguageCode constants
226 others[""] = N_( "noCode" );
227 others["default"] = N_( "Default" );
229 // language code: aar aa
230 iso639_2["aar"] = iso639_1["aa"] = N_( "Afar" );
231 // language code: abk ab
232 iso639_2["abk"] = iso639_1["ab"] = N_( "Abkhazian" );
233 // language code: ace
234 iso639_2["ace"] = N_( "Achinese" );
235 // language code: ach
236 iso639_2["ach"] = N_( "Acoli" );
237 // language code: ada
238 iso639_2["ada"] = N_( "Adangme" );
239 // language code: ady
240 iso639_2["ady"] = N_( "Adyghe" );
241 // language code: afa
242 iso639_2["afa"] = N_( "Afro-Asiatic (Other)" );
243 // language code: afh
244 iso639_2["afh"] = N_( "Afrihili" );
245 // language code: afr af
246 iso639_2["afr"] = iso639_1["af"] = N_( "Afrikaans" );
247 // language code: ain
248 iso639_2["ain"] = N_( "Ainu" );
249 // language code: aka ak
250 iso639_2["aka"] = iso639_1["ak"] = N_( "Akan" );
251 // language code: akk
252 iso639_2["akk"] = N_( "Akkadian" );
253 // language code: alb sqi sq
254 iso639_2["alb"] = iso639_2["sqi"] = iso639_1["sq"] = N_( "Albanian" );
255 // language code: ale
256 iso639_2["ale"] = N_( "Aleut" );
257 // language code: alg
258 iso639_2["alg"] = N_( "Algonquian languages" );
259 // language code: alt
260 iso639_2["alt"] = N_( "Southern Altai" );
261 // language code: amh am
262 iso639_2["amh"] = iso639_1["am"] = N_( "Amharic" );
263 // language code: ang
264 iso639_2["ang"] = N_( "English, Old (ca.450-1100)" );
265 // language code: apa
266 iso639_2["apa"] = N_( "Apache languages" );
267 // language code: ara ar
268 iso639_2["ara"] = iso639_1["ar"] = N_( "Arabic" );
269 // language code: arc
270 iso639_2["arc"] = N_( "Aramaic" );
271 // language code: arg an
272 iso639_2["arg"] = iso639_1["an"] = N_( "Aragonese" );
273 // language code: arm hye hy
274 iso639_2["arm"] = iso639_2["hye"] = iso639_1["hy"] = N_( "Armenian" );
275 // language code: arn
276 iso639_2["arn"] = N_( "Araucanian" );
277 // language code: arp
278 iso639_2["arp"] = N_( "Arapaho" );
279 // language code: art
280 iso639_2["art"] = N_( "Artificial (Other)" );
281 // language code: arw
282 iso639_2["arw"] = N_( "Arawak" );
283 // language code: asm as
284 iso639_2["asm"] = iso639_1["as"] = N_( "Assamese" );
285 // language code: ast
286 iso639_2["ast"] = N_( "Asturian" );
287 // language code: ath
288 iso639_2["ath"] = N_( "Athapascan languages" );
289 // language code: aus
290 iso639_2["aus"] = N_( "Australian languages" );
291 // language code: ava av
292 iso639_2["ava"] = iso639_1["av"] = N_( "Avaric" );
293 // language code: ave ae
294 iso639_2["ave"] = iso639_1["ae"] = N_( "Avestan" );
295 // language code: awa
296 iso639_2["awa"] = N_( "Awadhi" );
297 // language code: aym ay
298 iso639_2["aym"] = iso639_1["ay"] = N_( "Aymara" );
299 // language code: aze az
300 iso639_2["aze"] = iso639_1["az"] = N_( "Azerbaijani" );
301 // language code: bad
302 iso639_2["bad"] = N_( "Banda" );
303 // language code: bai
304 iso639_2["bai"] = N_( "Bamileke languages" );
305 // language code: bak ba
306 iso639_2["bak"] = iso639_1["ba"] = N_( "Bashkir" );
307 // language code: bal
308 iso639_2["bal"] = N_( "Baluchi" );
309 // language code: bam bm
310 iso639_2["bam"] = iso639_1["bm"] = N_( "Bambara" );
311 // language code: ban
312 iso639_2["ban"] = N_( "Balinese" );
313 // language code: baq eus eu
314 iso639_2["baq"] = iso639_2["eus"] = iso639_1["eu"] = N_( "Basque" );
315 // language code: bas
316 iso639_2["bas"] = N_( "Basa" );
317 // language code: bat
318 iso639_2["bat"] = N_( "Baltic (Other)" );
319 // language code: bej
320 iso639_2["bej"] = N_( "Beja" );
321 // language code: bel be
322 iso639_2["bel"] = iso639_1["be"] = N_( "Belarusian" );
323 // language code: bem
324 iso639_2["bem"] = N_( "Bemba" );
325 // language code: ben bn
326 iso639_2["ben"] = iso639_1["bn"] = N_( "Bengali" );
327 // language code: ber
328 iso639_2["ber"] = N_( "Berber (Other)" );
329 // language code: bho
330 iso639_2["bho"] = N_( "Bhojpuri" );
331 // language code: bih bh
332 iso639_2["bih"] = iso639_1["bh"] = N_( "Bihari" );
333 // language code: bik
334 iso639_2["bik"] = N_( "Bikol" );
335 // language code: bin
336 iso639_2["bin"] = N_( "Bini" );
337 // language code: bis bi
338 iso639_2["bis"] = iso639_1["bi"] = N_( "Bislama" );
339 // language code: bla
340 iso639_2["bla"] = N_( "Siksika" );
341 // language code: bnt
342 iso639_2["bnt"] = N_( "Bantu (Other)" );
343 // language code: bos bs
344 iso639_2["bos"] = iso639_1["bs"] = N_( "Bosnian" );
345 // language code: bra
346 iso639_2["bra"] = N_( "Braj" );
347 // language code: bre br
348 iso639_2["bre"] = iso639_1["br"] = N_( "Breton" );
349 // language code: btk
350 iso639_2["btk"] = N_( "Batak (Indonesia)" );
351 // language code: bua
352 iso639_2["bua"] = N_( "Buriat" );
353 // language code: bug
354 iso639_2["bug"] = N_( "Buginese" );
355 // language code: bul bg
356 iso639_2["bul"] = iso639_1["bg"] = N_( "Bulgarian" );
357 // language code: bur mya my
358 iso639_2["bur"] = iso639_2["mya"] = iso639_1["my"] = N_( "Burmese" );
359 // language code: byn
360 iso639_2["byn"] = N_( "Blin" );
361 // language code: cad
362 iso639_2["cad"] = N_( "Caddo" );
363 // language code: cai
364 iso639_2["cai"] = N_( "Central American Indian (Other)" );
365 // language code: car
366 iso639_2["car"] = N_( "Carib" );
367 // language code: cat ca
368 iso639_2["cat"] = iso639_1["ca"] = N_( "Catalan" );
369 // language code: cau
370 iso639_2["cau"] = N_( "Caucasian (Other)" );
371 // language code: ceb
372 iso639_2["ceb"] = N_( "Cebuano" );
373 // language code: cel
374 iso639_2["cel"] = N_( "Celtic (Other)" );
375 // language code: cha ch
376 iso639_2["cha"] = iso639_1["ch"] = N_( "Chamorro" );
377 // language code: chb
378 iso639_2["chb"] = N_( "Chibcha" );
379 // language code: che ce
380 iso639_2["che"] = iso639_1["ce"] = N_( "Chechen" );
381 // language code: chg
382 iso639_2["chg"] = N_( "Chagatai" );
383 // language code: chi zho zh
384 iso639_2["chi"] = iso639_2["zho"] = iso639_1["zh"] = N_( "Chinese" );
385 // language code: chk
386 iso639_2["chk"] = N_( "Chuukese" );
387 // language code: chm
388 iso639_2["chm"] = N_( "Mari" );
389 // language code: chn
390 iso639_2["chn"] = N_( "Chinook jargon" );
391 // language code: cho
392 iso639_2["cho"] = N_( "Choctaw" );
393 // language code: chp
394 iso639_2["chp"] = N_( "Chipewyan" );
395 // language code: chr
396 iso639_2["chr"] = N_( "Cherokee" );
397 // language code: chu cu
398 iso639_2["chu"] = iso639_1["cu"] = N_( "Church Slavic" );
399 // language code: chv cv
400 iso639_2["chv"] = iso639_1["cv"] = N_( "Chuvash" );
401 // language code: chy
402 iso639_2["chy"] = N_( "Cheyenne" );
403 // language code: cmc
404 iso639_2["cmc"] = N_( "Chamic languages" );
405 // language code: cop
406 iso639_2["cop"] = N_( "Coptic" );
407 // language code: cor kw
408 iso639_2["cor"] = iso639_1["kw"] = N_( "Cornish" );
409 // language code: cos co
410 iso639_2["cos"] = iso639_1["co"] = N_( "Corsican" );
411 // language code: cpe
412 iso639_2["cpe"] = N_( "Creoles and pidgins, English based (Other)" );
413 // language code: cpf
414 iso639_2["cpf"] = N_( "Creoles and pidgins, French-based (Other)" );
415 // language code: cpp
416 iso639_2["cpp"] = N_( "Creoles and pidgins, Portuguese-based (Other)" );
417 // language code: cre cr
418 iso639_2["cre"] = iso639_1["cr"] = N_( "Cree" );
419 // language code: crh
420 iso639_2["crh"] = N_( "Crimean Tatar" );
421 // language code: crp
422 iso639_2["crp"] = N_( "Creoles and pidgins (Other)" );
423 // language code: csb
424 iso639_2["csb"] = N_( "Kashubian" );
425 // language code: cus
426 iso639_2["cus"] = N_( "Cushitic (Other)" );
427 // language code: cze ces cs
428 iso639_2["cze"] = iso639_2["ces"] = iso639_1["cs"] = N_( "Czech" );
429 // language code: dak
430 iso639_2["dak"] = N_( "Dakota" );
431 // language code: dan da
432 iso639_2["dan"] = iso639_1["da"] = N_( "Danish" );
433 // language code: dar
434 iso639_2["dar"] = N_( "Dargwa" );
435 // language code: day
436 iso639_2["day"] = N_( "Dayak" );
437 // language code: del
438 iso639_2["del"] = N_( "Delaware" );
439 // language code: den
440 iso639_2["den"] = N_( "Slave (Athapascan)" );
441 // language code: dgr
442 iso639_2["dgr"] = N_( "Dogrib" );
443 // language code: din
444 iso639_2["din"] = N_( "Dinka" );
445 // language code: div dv
446 iso639_2["div"] = iso639_1["dv"] = N_( "Divehi" );
447 // language code: doi
448 iso639_2["doi"] = N_( "Dogri" );
449 // language code: dra
450 iso639_2["dra"] = N_( "Dravidian (Other)" );
451 // language code: dsb
452 iso639_2["dsb"] = N_( "Lower Sorbian" );
453 // language code: dua
454 iso639_2["dua"] = N_( "Duala" );
455 // language code: dum
456 iso639_2["dum"] = N_( "Dutch, Middle (ca.1050-1350)" );
457 // language code: dut nld nl
458 iso639_2["dut"] = iso639_2["nld"] = iso639_1["nl"] = N_( "Dutch" );
459 // language code: dyu
460 iso639_2["dyu"] = N_( "Dyula" );
461 // language code: dzo dz
462 iso639_2["dzo"] = iso639_1["dz"] = N_( "Dzongkha" );
463 // language code: efi
464 iso639_2["efi"] = N_( "Efik" );
465 // language code: egy
466 iso639_2["egy"] = N_( "Egyptian (Ancient)" );
467 // language code: eka
468 iso639_2["eka"] = N_( "Ekajuk" );
469 // language code: elx
470 iso639_2["elx"] = N_( "Elamite" );
471 // language code: eng en
472 iso639_2["eng"] = iso639_1["en"] = N_( "English" );
473 // language code: enm
474 iso639_2["enm"] = N_( "English, Middle (1100-1500)" );
475 // language code: epo eo
476 iso639_2["epo"] = iso639_1["eo"] = N_( "Esperanto" );
477 // language code: est et
478 iso639_2["est"] = iso639_1["et"] = N_( "Estonian" );
479 // language code: ewe ee
480 iso639_2["ewe"] = iso639_1["ee"] = N_( "Ewe" );
481 // language code: ewo
482 iso639_2["ewo"] = N_( "Ewondo" );
483 // language code: fan
484 iso639_2["fan"] = N_( "Fang" );
485 // language code: fao fo
486 iso639_2["fao"] = iso639_1["fo"] = N_( "Faroese" );
487 // language code: fat
488 iso639_2["fat"] = N_( "Fanti" );
489 // language code: fij fj
490 iso639_2["fij"] = iso639_1["fj"] = N_( "Fijian" );
491 // language code: fil
492 iso639_2["fil"] = N_( "Filipino" );
493 // language code: fin fi
494 iso639_2["fin"] = iso639_1["fi"] = N_( "Finnish" );
495 // language code: fiu
496 iso639_2["fiu"] = N_( "Finno-Ugrian (Other)" );
497 // language code: fon
498 iso639_2["fon"] = N_( "Fon" );
499 // language code: fre fra fr
500 iso639_2["fre"] = iso639_2["fra"] = iso639_1["fr"] = N_( "French" );
501 // language code: frm
502 iso639_2["frm"] = N_( "French, Middle (ca.1400-1600)" );
503 // language code: fro
504 iso639_2["fro"] = N_( "French, Old (842-ca.1400)" );
505 // language code: fry fy
506 iso639_2["fry"] = iso639_1["fy"] = N_( "Frisian" );
507 // language code: ful ff
508 iso639_2["ful"] = iso639_1["ff"] = N_( "Fulah" );
509 // language code: fur
510 iso639_2["fur"] = N_( "Friulian" );
511 // language code: gaa
512 iso639_2["gaa"] = N_( "Ga" );
513 // language code: gay
514 iso639_2["gay"] = N_( "Gayo" );
515 // language code: gba
516 iso639_2["gba"] = N_( "Gbaya" );
517 // language code: gem
518 iso639_2["gem"] = N_( "Germanic (Other)" );
519 // language code: geo kat ka
520 iso639_2["geo"] = iso639_2["kat"] = iso639_1["ka"] = N_( "Georgian" );
521 // language code: ger deu de
522 iso639_2["ger"] = iso639_2["deu"] = iso639_1["de"] = N_( "German" );
523 // language code: gez
524 iso639_2["gez"] = N_( "Geez" );
525 // language code: gil
526 iso639_2["gil"] = N_( "Gilbertese" );
527 // language code: gla gd
528 iso639_2["gla"] = iso639_1["gd"] = N_( "Gaelic" );
529 // language code: gle ga
530 iso639_2["gle"] = iso639_1["ga"] = N_( "Irish" );
531 // language code: glg gl
532 iso639_2["glg"] = iso639_1["gl"] = N_( "Galician" );
533 // language code: glv gv
534 iso639_2["glv"] = iso639_1["gv"] = N_( "Manx" );
535 // language code: gmh
536 iso639_2["gmh"] = N_( "German, Middle High (ca.1050-1500)" );
537 // language code: goh
538 iso639_2["goh"] = N_( "German, Old High (ca.750-1050)" );
539 // language code: gon
540 iso639_2["gon"] = N_( "Gondi" );
541 // language code: gor
542 iso639_2["gor"] = N_( "Gorontalo" );
543 // language code: got
544 iso639_2["got"] = N_( "Gothic" );
545 // language code: grb
546 iso639_2["grb"] = N_( "Grebo" );
547 // language code: grc
548 iso639_2["grc"] = N_( "Greek, Ancient (to 1453)" );
549 // language code: gre ell el
550 iso639_2["gre"] = iso639_2["ell"] = iso639_1["el"] = N_( "Greek, Modern (1453-)" );
551 // language code: grn gn
552 iso639_2["grn"] = iso639_1["gn"] = N_( "Guarani" );
553 // language code: guj gu
554 iso639_2["guj"] = iso639_1["gu"] = N_( "Gujarati" );
555 // language code: gwi
556 iso639_2["gwi"] = N_( "Gwich'in" );
557 // language code: hai
558 iso639_2["hai"] = N_( "Haida" );
559 // language code: hat ht
560 iso639_2["hat"] = iso639_1["ht"] = N_( "Haitian" );
561 // language code: hau ha
562 iso639_2["hau"] = iso639_1["ha"] = N_( "Hausa" );
563 // language code: haw
564 iso639_2["haw"] = N_( "Hawaiian" );
565 // language code: heb he
566 iso639_2["heb"] = iso639_1["he"] = N_( "Hebrew" );
567 // language code: her hz
568 iso639_2["her"] = iso639_1["hz"] = N_( "Herero" );
569 // language code: hil
570 iso639_2["hil"] = N_( "Hiligaynon" );
571 // language code: him
572 iso639_2["him"] = N_( "Himachali" );
573 // language code: hin hi
574 iso639_2["hin"] = iso639_1["hi"] = N_( "Hindi" );
575 // language code: hit
576 iso639_2["hit"] = N_( "Hittite" );
577 // language code: hmn
578 iso639_2["hmn"] = N_( "Hmong" );
579 // language code: hmo ho
580 iso639_2["hmo"] = iso639_1["ho"] = N_( "Hiri Motu" );
581 // language code: hsb
582 iso639_2["hsb"] = N_( "Upper Sorbian" );
583 // language code: hun hu
584 iso639_2["hun"] = iso639_1["hu"] = N_( "Hungarian" );
585 // language code: hup
586 iso639_2["hup"] = N_( "Hupa" );
587 // language code: iba
588 iso639_2["iba"] = N_( "Iban" );
589 // language code: ibo ig
590 iso639_2["ibo"] = iso639_1["ig"] = N_( "Igbo" );
591 // language code: ice isl is
592 iso639_2["ice"] = iso639_2["isl"] = iso639_1["is"] = N_( "Icelandic" );
593 // language code: ido io
594 iso639_2["ido"] = iso639_1["io"] = N_( "Ido" );
595 // language code: iii ii
596 iso639_2["iii"] = iso639_1["ii"] = N_( "Sichuan Yi" );
597 // language code: ijo
598 iso639_2["ijo"] = N_( "Ijo" );
599 // language code: iku iu
600 iso639_2["iku"] = iso639_1["iu"] = N_( "Inuktitut" );
601 // language code: ile ie
602 iso639_2["ile"] = iso639_1["ie"] = N_( "Interlingue" );
603 // language code: ilo
604 iso639_2["ilo"] = N_( "Iloko" );
605 // language code: ina ia
606 iso639_2["ina"] = iso639_1["ia"] = N_( "Interlingua (International Auxiliary Language Association)" );
607 // language code: inc
608 iso639_2["inc"] = N_( "Indic (Other)" );
609 // language code: ind id
610 iso639_2["ind"] = iso639_1["id"] = N_( "Indonesian" );
611 // language code: ine
612 iso639_2["ine"] = N_( "Indo-European (Other)" );
613 // language code: inh
614 iso639_2["inh"] = N_( "Ingush" );
615 // language code: ipk ik
616 iso639_2["ipk"] = iso639_1["ik"] = N_( "Inupiaq" );
617 // language code: ira
618 iso639_2["ira"] = N_( "Iranian (Other)" );
619 // language code: iro
620 iso639_2["iro"] = N_( "Iroquoian languages" );
621 // language code: ita it
622 iso639_2["ita"] = iso639_1["it"] = N_( "Italian" );
623 // language code: jav jv
624 iso639_2["jav"] = iso639_1["jv"] = N_( "Javanese" );
625 // language code: jbo
626 iso639_2["jbo"] = N_( "Lojban" );
627 // language code: jpn ja
628 iso639_2["jpn"] = iso639_1["ja"] = N_( "Japanese" );
629 // language code: jpr
630 iso639_2["jpr"] = N_( "Judeo-Persian" );
631 // language code: jrb
632 iso639_2["jrb"] = N_( "Judeo-Arabic" );
633 // language code: kaa
634 iso639_2["kaa"] = N_( "Kara-Kalpak" );
635 // language code: kab
636 iso639_2["kab"] = N_( "Kabyle" );
637 // language code: kac
638 iso639_2["kac"] = N_( "Kachin" );
639 // language code: kal kl
640 iso639_2["kal"] = iso639_1["kl"] = N_( "Kalaallisut" );
641 // language code: kam
642 iso639_2["kam"] = N_( "Kamba" );
643 // language code: kan kn
644 iso639_2["kan"] = iso639_1["kn"] = N_( "Kannada" );
645 // language code: kar
646 iso639_2["kar"] = N_( "Karen" );
647 // language code: kas ks
648 iso639_2["kas"] = iso639_1["ks"] = N_( "Kashmiri" );
649 // language code: kau kr
650 iso639_2["kau"] = iso639_1["kr"] = N_( "Kanuri" );
651 // language code: kaw
652 iso639_2["kaw"] = N_( "Kawi" );
653 // language code: kaz kk
654 iso639_2["kaz"] = iso639_1["kk"] = N_( "Kazakh" );
655 // language code: kbd
656 iso639_2["kbd"] = N_( "Kabardian" );
657 // language code: kha
658 iso639_2["kha"] = N_( "Khasi" );
659 // language code: khi
660 iso639_2["khi"] = N_( "Khoisan (Other)" );
661 // language code: khm km
662 iso639_2["khm"] = iso639_1["km"] = N_( "Khmer" );
663 // language code: kho
664 iso639_2["kho"] = N_( "Khotanese" );
665 // language code: kik ki
666 iso639_2["kik"] = iso639_1["ki"] = N_( "Kikuyu" );
667 // language code: kin rw
668 iso639_2["kin"] = iso639_1["rw"] = N_( "Kinyarwanda" );
669 // language code: kir ky
670 iso639_2["kir"] = iso639_1["ky"] = N_( "Kirghiz" );
671 // language code: kmb
672 iso639_2["kmb"] = N_( "Kimbundu" );
673 // language code: kok
674 iso639_2["kok"] = N_( "Konkani" );
675 // language code: kom kv
676 iso639_2["kom"] = iso639_1["kv"] = N_( "Komi" );
677 // language code: kon kg
678 iso639_2["kon"] = iso639_1["kg"] = N_( "Kongo" );
679 // language code: kor ko
680 iso639_2["kor"] = iso639_1["ko"] = N_( "Korean" );
681 // language code: kos
682 iso639_2["kos"] = N_( "Kosraean" );
683 // language code: kpe
684 iso639_2["kpe"] = N_( "Kpelle" );
685 // language code: krc
686 iso639_2["krc"] = N_( "Karachay-Balkar" );
687 // language code: kro
688 iso639_2["kro"] = N_( "Kru" );
689 // language code: kru
690 iso639_2["kru"] = N_( "Kurukh" );
691 // language code: kua kj
692 iso639_2["kua"] = iso639_1["kj"] = N_( "Kuanyama" );
693 // language code: kum
694 iso639_2["kum"] = N_( "Kumyk" );
695 // language code: kur ku
696 iso639_2["kur"] = iso639_1["ku"] = N_( "Kurdish" );
697 // language code: kut
698 iso639_2["kut"] = N_( "Kutenai" );
699 // language code: lad
700 iso639_2["lad"] = N_( "Ladino" );
701 // language code: lah
702 iso639_2["lah"] = N_( "Lahnda" );
703 // language code: lam
704 iso639_2["lam"] = N_( "Lamba" );
705 // language code: lao lo
706 iso639_2["lao"] = iso639_1["lo"] = N_( "Lao" );
707 // language code: lat la
708 iso639_2["lat"] = iso639_1["la"] = N_( "Latin" );
709 // language code: lav lv
710 iso639_2["lav"] = iso639_1["lv"] = N_( "Latvian" );
711 // language code: lez
712 iso639_2["lez"] = N_( "Lezghian" );
713 // language code: lim li
714 iso639_2["lim"] = iso639_1["li"] = N_( "Limburgan" );
715 // language code: lin ln
716 iso639_2["lin"] = iso639_1["ln"] = N_( "Lingala" );
717 // language code: lit lt
718 iso639_2["lit"] = iso639_1["lt"] = N_( "Lithuanian" );
719 // language code: lol
720 iso639_2["lol"] = N_( "Mongo" );
721 // language code: loz
722 iso639_2["loz"] = N_( "Lozi" );
723 // language code: ltz lb
724 iso639_2["ltz"] = iso639_1["lb"] = N_( "Luxembourgish" );
725 // language code: lua
726 iso639_2["lua"] = N_( "Luba-Lulua" );
727 // language code: lub lu
728 iso639_2["lub"] = iso639_1["lu"] = N_( "Luba-Katanga" );
729 // language code: lug lg
730 iso639_2["lug"] = iso639_1["lg"] = N_( "Ganda" );
731 // language code: lui
732 iso639_2["lui"] = N_( "Luiseno" );
733 // language code: lun
734 iso639_2["lun"] = N_( "Lunda" );
735 // language code: luo
736 iso639_2["luo"] = N_( "Luo (Kenya and Tanzania)" );
737 // language code: lus
738 iso639_2["lus"] = N_( "lushai" );
739 // language code: mac mkd mk
740 iso639_2["mac"] = iso639_2["mkd"] = iso639_1["mk"] = N_( "Macedonian" );
741 // language code: mad
742 iso639_2["mad"] = N_( "Madurese" );
743 // language code: mag
744 iso639_2["mag"] = N_( "Magahi" );
745 // language code: mah mh
746 iso639_2["mah"] = iso639_1["mh"] = N_( "Marshallese" );
747 // language code: mai
748 iso639_2["mai"] = N_( "Maithili" );
749 // language code: mak
750 iso639_2["mak"] = N_( "Makasar" );
751 // language code: mal ml
752 iso639_2["mal"] = iso639_1["ml"] = N_( "Malayalam" );
753 // language code: man
754 iso639_2["man"] = N_( "Mandingo" );
755 // language code: mao mri mi
756 iso639_2["mao"] = iso639_2["mri"] = iso639_1["mi"] = N_( "Maori" );
757 // language code: map
758 iso639_2["map"] = N_( "Austronesian (Other)" );
759 // language code: mar mr
760 iso639_2["mar"] = iso639_1["mr"] = N_( "Marathi" );
761 // language code: mas
762 iso639_2["mas"] = N_( "Masai" );
763 // language code: may msa ms
764 iso639_2["may"] = iso639_2["msa"] = iso639_1["ms"] = N_( "Malay" );
765 // language code: mdf
766 iso639_2["mdf"] = N_( "Moksha" );
767 // language code: mdr
768 iso639_2["mdr"] = N_( "Mandar" );
769 // language code: men
770 iso639_2["men"] = N_( "Mende" );
771 // language code: mga
772 iso639_2["mga"] = N_( "Irish, Middle (900-1200)" );
773 // language code: mic
774 iso639_2["mic"] = N_( "Mi'kmaq" );
775 // language code: min
776 iso639_2["min"] = N_( "Minangkabau" );
777 // language code: mis
778 iso639_2["mis"] = N_( "Miscellaneous languages" );
779 // language code: mkh
780 iso639_2["mkh"] = N_( "Mon-Khmer (Other)" );
781 // language code: mlg mg
782 iso639_2["mlg"] = iso639_1["mg"] = N_( "Malagasy" );
783 // language code: mlt mt
784 iso639_2["mlt"] = iso639_1["mt"] = N_( "Maltese" );
785 // language code: mnc
786 iso639_2["mnc"] = N_( "Manchu" );
787 // language code: mni
788 iso639_2["mni"] = N_( "Manipuri" );
789 // language code: mno
790 iso639_2["mno"] = N_( "Manobo languages" );
791 // language code: moh
792 iso639_2["moh"] = N_( "Mohawk" );
793 // language code: mol mo
794 iso639_2["mol"] = iso639_1["mo"] = N_( "Moldavian" );
795 // language code: mon mn
796 iso639_2["mon"] = iso639_1["mn"] = N_( "Mongolian" );
797 // language code: mos
798 iso639_2["mos"] = N_( "Mossi" );
799 // language code: mul
800 iso639_2["mul"] = N_( "Multiple languages" );
801 // language code: mun
802 iso639_2["mun"] = N_( "Munda languages" );
803 // language code: mus
804 iso639_2["mus"] = N_( "Creek" );
805 // language code: mwl
806 iso639_2["mwl"] = N_( "Mirandese" );
807 // language code: mwr
808 iso639_2["mwr"] = N_( "Marwari" );
809 // language code: myn
810 iso639_2["myn"] = N_( "Mayan languages" );
811 // language code: myv
812 iso639_2["myv"] = N_( "Erzya" );
813 // language code: nah
814 iso639_2["nah"] = N_( "Nahuatl" );
815 // language code: nai
816 iso639_2["nai"] = N_( "North American Indian" );
817 // language code: nap
818 iso639_2["nap"] = N_( "Neapolitan" );
819 // language code: nau na
820 iso639_2["nau"] = iso639_1["na"] = N_( "Nauru" );
821 // language code: nav nv
822 iso639_2["nav"] = iso639_1["nv"] = N_( "Navajo" );
823 // language code: nbl nr
824 iso639_2["nbl"] = iso639_1["nr"] = N_( "Ndebele, South" );
825 // language code: nde nd
826 iso639_2["nde"] = iso639_1["nd"] = N_( "Ndebele, North" );
827 // language code: ndo ng
828 iso639_2["ndo"] = iso639_1["ng"] = N_( "Ndonga" );
829 // language code: nds
830 iso639_2["nds"] = N_( "Low German" );
831 // language code: nep ne
832 iso639_2["nep"] = iso639_1["ne"] = N_( "Nepali" );
833 // language code: new
834 iso639_2["new"] = N_( "Nepal Bhasa" );
835 // language code: nia
836 iso639_2["nia"] = N_( "Nias" );
837 // language code: nic
838 iso639_2["nic"] = N_( "Niger-Kordofanian (Other)" );
839 // language code: niu
840 iso639_2["niu"] = N_( "Niuean" );
841 // language code: nno nn
842 iso639_2["nno"] = iso639_1["nn"] = N_( "Norwegian Nynorsk" );
843 // language code: nob nb
844 iso639_2["nob"] = iso639_1["nb"] = N_( "Norwegian Bokmal" );
845 // language code: nog
846 iso639_2["nog"] = N_( "Nogai" );
847 // language code: non
848 iso639_2["non"] = N_( "Norse, Old" );
849 // language code: nor no
850 iso639_2["nor"] = iso639_1["no"] = N_( "Norwegian" );
851 // language code: nso
852 iso639_2["nso"] = N_( "Northern Sotho" );
853 // language code: nub
854 iso639_2["nub"] = N_( "Nubian languages" );
855 // language code: nwc
856 iso639_2["nwc"] = N_( "Classical Newari" );
857 // language code: nya ny
858 iso639_2["nya"] = iso639_1["ny"] = N_( "Chichewa" );
859 // language code: nym
860 iso639_2["nym"] = N_( "Nyamwezi" );
861 // language code: nyn
862 iso639_2["nyn"] = N_( "Nyankole" );
863 // language code: nyo
864 iso639_2["nyo"] = N_( "Nyoro" );
865 // language code: nzi
866 iso639_2["nzi"] = N_( "Nzima" );
867 // language code: oci oc
868 iso639_2["oci"] = iso639_1["oc"] = N_( "Occitan (post 1500)" );
869 // language code: oji oj
870 iso639_2["oji"] = iso639_1["oj"] = N_( "Ojibwa" );
871 // language code: ori or
872 iso639_2["ori"] = iso639_1["or"] = N_( "Oriya" );
873 // language code: orm om
874 iso639_2["orm"] = iso639_1["om"] = N_( "Oromo" );
875 // language code: osa
876 iso639_2["osa"] = N_( "Osage" );
877 // language code: oss os
878 iso639_2["oss"] = iso639_1["os"] = N_( "Ossetian" );
879 // language code: ota
880 iso639_2["ota"] = N_( "Turkish, Ottoman (1500-1928)" );
881 // language code: oto
882 iso639_2["oto"] = N_( "Otomian languages" );
883 // language code: paa
884 iso639_2["paa"] = N_( "Papuan (Other)" );
885 // language code: pag
886 iso639_2["pag"] = N_( "Pangasinan" );
887 // language code: pal
888 iso639_2["pal"] = N_( "Pahlavi" );
889 // language code: pam
890 iso639_2["pam"] = N_( "Pampanga" );
891 // language code: pan pa
892 iso639_2["pan"] = iso639_1["pa"] = N_( "Panjabi" );
893 // language code: pap
894 iso639_2["pap"] = N_( "Papiamento" );
895 // language code: pau
896 iso639_2["pau"] = N_( "Palauan" );
897 // language code: peo
898 iso639_2["peo"] = N_( "Persian, Old (ca.600-400 B.C.)" );
899 // language code: per fas fa
900 iso639_2["per"] = iso639_2["fas"] = iso639_1["fa"] = N_( "Persian" );
901 // language code: phi
902 iso639_2["phi"] = N_( "Philippine (Other)" );
903 // language code: phn
904 iso639_2["phn"] = N_( "Phoenician" );
905 // language code: pli pi
906 iso639_2["pli"] = iso639_1["pi"] = N_( "Pali" );
907 // language code: pol pl
908 iso639_2["pol"] = iso639_1["pl"] = N_( "Polish" );
909 // language code: pon
910 iso639_2["pon"] = N_( "Pohnpeian" );
911 // language code: por pt
912 iso639_2["por"] = iso639_1["pt"] = N_( "Portuguese" );
913 // language code: pra
914 iso639_2["pra"] = N_( "Prakrit languages" );
915 // language code: pro
916 iso639_2["pro"] = N_( "Provencal, Old (to 1500)" );
917 // language code: pus ps
918 iso639_2["pus"] = iso639_1["ps"] = N_( "Pushto" );
919 // language code: que qu
920 iso639_2["que"] = iso639_1["qu"] = N_( "Quechua" );
921 // language code: raj
922 iso639_2["raj"] = N_( "Rajasthani" );
923 // language code: rap
924 iso639_2["rap"] = N_( "Rapanui" );
925 // language code: rar
926 iso639_2["rar"] = N_( "Rarotongan" );
927 // language code: roa
928 iso639_2["roa"] = N_( "Romance (Other)" );
929 // language code: roh rm
930 iso639_2["roh"] = iso639_1["rm"] = N_( "Raeto-Romance" );
931 // language code: rom
932 iso639_2["rom"] = N_( "Romany" );
933 // language code: rum ron ro
934 iso639_2["rum"] = iso639_2["ron"] = iso639_1["ro"] = N_( "Romanian" );
935 // language code: run rn
936 iso639_2["run"] = iso639_1["rn"] = N_( "Rundi" );
937 // language code: rus ru
938 iso639_2["rus"] = iso639_1["ru"] = N_( "Russian" );
939 // language code: sad
940 iso639_2["sad"] = N_( "Sandawe" );
941 // language code: sag sg
942 iso639_2["sag"] = iso639_1["sg"] = N_( "Sango" );
943 // language code: sah
944 iso639_2["sah"] = N_( "Yakut" );
945 // language code: sai
946 iso639_2["sai"] = N_( "South American Indian (Other)" );
947 // language code: sal
948 iso639_2["sal"] = N_( "Salishan languages" );
949 // language code: sam
950 iso639_2["sam"] = N_( "Samaritan Aramaic" );
951 // language code: san sa
952 iso639_2["san"] = iso639_1["sa"] = N_( "Sanskrit" );
953 // language code: sas
954 iso639_2["sas"] = N_( "Sasak" );
955 // language code: sat
956 iso639_2["sat"] = N_( "Santali" );
957 // language code: scc srp sr
958 iso639_2["scc"] = iso639_2["srp"] = iso639_1["sr"] = N_( "Serbian" );
959 // language code: scn
960 iso639_2["scn"] = N_( "Sicilian" );
961 // language code: sco
962 iso639_2["sco"] = N_( "Scots" );
963 // language code: scr hrv hr
964 iso639_2["scr"] = iso639_2["hrv"] = iso639_1["hr"] = N_( "Croatian" );
965 // language code: sel
966 iso639_2["sel"] = N_( "Selkup" );
967 // language code: sem
968 iso639_2["sem"] = N_( "Semitic (Other)" );
969 // language code: sga
970 iso639_2["sga"] = N_( "Irish, Old (to 900)" );
971 // language code: sgn
972 iso639_2["sgn"] = N_( "Sign Languages" );
973 // language code: shn
974 iso639_2["shn"] = N_( "Shan" );
975 // language code: sid
976 iso639_2["sid"] = N_( "Sidamo" );
977 // language code: sin si
978 iso639_2["sin"] = iso639_1["si"] = N_( "Sinhala" );
979 // language code: sio
980 iso639_2["sio"] = N_( "Siouan languages" );
981 // language code: sit
982 iso639_2["sit"] = N_( "Sino-Tibetan (Other)" );
983 // language code: sla
984 iso639_2["sla"] = N_( "Slavic (Other)" );
985 // language code: slo slk sk
986 iso639_2["slo"] = iso639_2["slk"] = iso639_1["sk"] = N_( "Slovak" );
987 // language code: slv sl
988 iso639_2["slv"] = iso639_1["sl"] = N_( "Slovenian" );
989 // language code: sma
990 iso639_2["sma"] = N_( "Southern Sami" );
991 // language code: sme se
992 iso639_2["sme"] = iso639_1["se"] = N_( "Northern Sami" );
993 // language code: smi
994 iso639_2["smi"] = N_( "Sami languages (Other)" );
995 // language code: smj
996 iso639_2["smj"] = N_( "Lule Sami" );
997 // language code: smn
998 iso639_2["smn"] = N_( "Inari Sami" );
999 // language code: smo sm
1000 iso639_2["smo"] = iso639_1["sm"] = N_( "Samoan" );
1001 // language code: sms
1002 iso639_2["sms"] = N_( "Skolt Sami" );
1003 // language code: sna sn
1004 iso639_2["sna"] = iso639_1["sn"] = N_( "Shona" );
1005 // language code: snd sd
1006 iso639_2["snd"] = iso639_1["sd"] = N_( "Sindhi" );
1007 // language code: snk
1008 iso639_2["snk"] = N_( "Soninke" );
1009 // language code: sog
1010 iso639_2["sog"] = N_( "Sogdian" );
1011 // language code: som so
1012 iso639_2["som"] = iso639_1["so"] = N_( "Somali" );
1013 // language code: son
1014 iso639_2["son"] = N_( "Songhai" );
1015 // language code: sot st
1016 iso639_2["sot"] = iso639_1["st"] = N_( "Sotho, Southern" );
1017 // language code: spa es
1018 iso639_2["spa"] = iso639_1["es"] = N_( "Spanish" );
1019 // language code: srd sc
1020 iso639_2["srd"] = iso639_1["sc"] = N_( "Sardinian" );
1021 // language code: srr
1022 iso639_2["srr"] = N_( "Serer" );
1023 // language code: ssa
1024 iso639_2["ssa"] = N_( "Nilo-Saharan (Other)" );
1025 // language code: ssw ss
1026 iso639_2["ssw"] = iso639_1["ss"] = N_( "Swati" );
1027 // language code: suk
1028 iso639_2["suk"] = N_( "Sukuma" );
1029 // language code: sun su
1030 iso639_2["sun"] = iso639_1["su"] = N_( "Sundanese" );
1031 // language code: sus
1032 iso639_2["sus"] = N_( "Susu" );
1033 // language code: sux
1034 iso639_2["sux"] = N_( "Sumerian" );
1035 // language code: swa sw
1036 iso639_2["swa"] = iso639_1["sw"] = N_( "Swahili" );
1037 // language code: swe sv
1038 iso639_2["swe"] = iso639_1["sv"] = N_( "Swedish" );
1039 // language code: syr
1040 iso639_2["syr"] = N_( "Syriac" );
1041 // language code: tah ty
1042 iso639_2["tah"] = iso639_1["ty"] = N_( "Tahitian" );
1043 // language code: tai
1044 iso639_2["tai"] = N_( "Tai (Other)" );
1045 // language code: tam ta
1046 iso639_2["tam"] = iso639_1["ta"] = N_( "Tamil" );
1047 // language code: tat tt
1048 iso639_2["tat"] = iso639_1["tt"] = N_( "Tatar" );
1049 // language code: tel te
1050 iso639_2["tel"] = iso639_1["te"] = N_( "Telugu" );
1051 // language code: tem
1052 iso639_2["tem"] = N_( "Timne" );
1053 // language code: ter
1054 iso639_2["ter"] = N_( "Tereno" );
1055 // language code: tet
1056 iso639_2["tet"] = N_( "Tetum" );
1057 // language code: tgk tg
1058 iso639_2["tgk"] = iso639_1["tg"] = N_( "Tajik" );
1059 // language code: tgl tl
1060 iso639_2["tgl"] = iso639_1["tl"] = N_( "Tagalog" );
1061 // language code: tha th
1062 iso639_2["tha"] = iso639_1["th"] = N_( "Thai" );
1063 // language code: tib bod bo
1064 iso639_2["tib"] = iso639_2["bod"] = iso639_1["bo"] = N_( "Tibetan" );
1065 // language code: tig
1066 iso639_2["tig"] = N_( "Tigre" );
1067 // language code: tir ti
1068 iso639_2["tir"] = iso639_1["ti"] = N_( "Tigrinya" );
1069 // language code: tiv
1070 iso639_2["tiv"] = N_( "Tiv" );
1071 // language code: tkl
1072 iso639_2["tkl"] = N_( "Tokelau" );
1073 // language code: tlh
1074 iso639_2["tlh"] = N_( "Klingon" );
1075 // language code: tli
1076 iso639_2["tli"] = N_( "Tlingit" );
1077 // language code: tmh
1078 iso639_2["tmh"] = N_( "Tamashek" );
1079 // language code: tog
1080 iso639_2["tog"] = N_( "Tonga (Nyasa)" );
1081 // language code: ton to
1082 iso639_2["ton"] = iso639_1["to"] = N_( "Tonga (Tonga Islands)" );
1083 // language code: tpi
1084 iso639_2["tpi"] = N_( "Tok Pisin" );
1085 // language code: tsi
1086 iso639_2["tsi"] = N_( "Tsimshian" );
1087 // language code: tsn tn
1088 iso639_2["tsn"] = iso639_1["tn"] = N_( "Tswana" );
1089 // language code: tso ts
1090 iso639_2["tso"] = iso639_1["ts"] = N_( "Tsonga" );
1091 // language code: tuk tk
1092 iso639_2["tuk"] = iso639_1["tk"] = N_( "Turkmen" );
1093 // language code: tum
1094 iso639_2["tum"] = N_( "Tumbuka" );
1095 // language code: tup
1096 iso639_2["tup"] = N_( "Tupi languages" );
1097 // language code: tur tr
1098 iso639_2["tur"] = iso639_1["tr"] = N_( "Turkish" );
1099 // language code: tut
1100 iso639_2["tut"] = N_( "Altaic (Other)" );
1101 // language code: tvl
1102 iso639_2["tvl"] = N_( "Tuvalu" );
1103 // language code: twi tw
1104 iso639_2["twi"] = iso639_1["tw"] = N_( "Twi" );
1105 // language code: tyv
1106 iso639_2["tyv"] = N_( "Tuvinian" );
1107 // language code: udm
1108 iso639_2["udm"] = N_( "Udmurt" );
1109 // language code: uga
1110 iso639_2["uga"] = N_( "Ugaritic" );
1111 // language code: uig ug
1112 iso639_2["uig"] = iso639_1["ug"] = N_( "Uighur" );
1113 // language code: ukr uk
1114 iso639_2["ukr"] = iso639_1["uk"] = N_( "Ukrainian" );
1115 // language code: umb
1116 iso639_2["umb"] = N_( "Umbundu" );
1117 // language code: und
1118 iso639_2["und"] = N_( "Undetermined" );
1119 // language code: urd ur
1120 iso639_2["urd"] = iso639_1["ur"] = N_( "Urdu" );
1121 // language code: uzb uz
1122 iso639_2["uzb"] = iso639_1["uz"] = N_( "Uzbek" );
1123 // language code: vai
1124 iso639_2["vai"] = N_( "Vai" );
1125 // language code: ven ve
1126 iso639_2["ven"] = iso639_1["ve"] = N_( "Venda" );
1127 // language code: vie vi
1128 iso639_2["vie"] = iso639_1["vi"] = N_( "Vietnamese" );
1129 // language code: vol vo
1130 iso639_2["vol"] = iso639_1["vo"] = N_( "Volapuk" );
1131 // language code: vot
1132 iso639_2["vot"] = N_( "Votic" );
1133 // language code: wak
1134 iso639_2["wak"] = N_( "Wakashan languages" );
1135 // language code: wal
1136 iso639_2["wal"] = N_( "Walamo" );
1137 // language code: war
1138 iso639_2["war"] = N_( "Waray" );
1139 // language code: was
1140 iso639_2["was"] = N_( "Washo" );
1141 // language code: wel cym cy
1142 iso639_2["wel"] = iso639_2["cym"] = iso639_1["cy"] = N_( "Welsh" );
1143 // language code: wen
1144 iso639_2["wen"] = N_( "Sorbian languages" );
1145 // language code: wln wa
1146 iso639_2["wln"] = iso639_1["wa"] = N_( "Walloon" );
1147 // language code: wol wo
1148 iso639_2["wol"] = iso639_1["wo"] = N_( "Wolof" );
1149 // language code: xal
1150 iso639_2["xal"] = N_( "Kalmyk" );
1151 // language code: xho xh
1152 iso639_2["xho"] = iso639_1["xh"] = N_( "Xhosa" );
1153 // language code: yao
1154 iso639_2["yao"] = N_( "Yao" );
1155 // language code: yap
1156 iso639_2["yap"] = N_( "Yapese" );
1157 // language code: yid yi
1158 iso639_2["yid"] = iso639_1["yi"] = N_( "Yiddish" );
1159 // language code: yor yo
1160 iso639_2["yor"] = iso639_1["yo"] = N_( "Yoruba" );
1161 // language code: ypk
1162 iso639_2["ypk"] = N_( "Yupik languages" );
1163 // language code: zap
1164 iso639_2["zap"] = N_( "Zapotec" );
1165 // language code: zen
1166 iso639_2["zen"] = N_( "Zenaga" );
1167 // language code: zha za
1168 iso639_2["zha"] = iso639_1["za"] = N_( "Zhuang" );
1169 // language code: znd
1170 iso639_2["znd"] = N_( "Zande" );
1171 // language code: zul zu
1172 iso639_2["zul"] = iso639_1["zu"] = N_( "Zulu" );
1173 // language code: zun
1174 iso639_2["zun"] = N_( "Zuni" );
1177 /////////////////////////////////////////////////////////////////
1179 ///////////////////////////////////////////////////////////////////
1181 /////////////////////////////////////////////////////////////////
1183 ///////////////////////////////////////////////////////////////////