1 /* 2 * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @summary test ISO639-2 language codes 27 * @compile -encoding ascii Bug4175998Test.java 28 * @run main Bug4175998Test 29 * @bug 4175998 30 */ 31 32 /* 33 * 34 * 35 * (C) Copyright IBM Corp. 1998 - All Rights Reserved 36 * 37 * The original version of this source code and documentation is 38 * copyrighted and owned by IBM. These materials are provided 39 * under terms of a License Agreement between IBM and Sun. 40 * This technology is protected by multiple US and International 41 * patents. This notice and attribution to IBM may not be removed. 42 * 43 */ 44 45 import java.util.*; 46 import java.io.*; 47 48 /** 49 * Bug4175998Test verifies that the following bug has been fixed: 50 * Bug 4175998 - The java.util.Locale.getISO3Language() returns wrong result for a locale with 51 * language code 'ta'(Tamil). 52 */ 53 public class Bug4175998Test extends LocaleTestFmwk { 54 public static void main(String[] args) throws Exception { 55 new Bug4175998Test().run(args); 56 //generateTables(); //uncomment this to regenerate data tables 57 } 58 59 public void testIt() throws Exception { 60 boolean bad = false; 61 for (int i = 0; i < CODES.length; i++) { 62 final String[] localeCodes = CODES[i]; 63 final Locale l = new Locale(localeCodes[0], ""); 64 final String iso3 = l.getISO3Language(); 65 if (!iso3.equals(localeCodes[1]) /*&& !iso3.equals(localeCodes[2])*/) { 66 logln("Locale("+l+") returned bad ISO3 language code." 67 +" Got '"+iso3+"' instead of '"+localeCodes[1]+"'"/*+" or '"+localeCodes[2]+"'"*/); 68 bad = true; 69 } 70 } 71 if (bad) { 72 errln("Bad ISO3 language codes detected."); 73 } 74 } 75 76 private static final String[][] CODES = { 77 {"pt","por","por"}, 78 {"eu","eus","baq"}, 79 {"ps","pus","pus"}, 80 {"et","est","est"}, 81 {"ka","kat","geo"}, 82 {"es","spa","spa"}, 83 {"eo","epo","epo"}, 84 {"en","eng","eng"}, 85 {"pl","pol","pol"}, 86 {"el","ell","gre"}, 87 {"uz","uzb","uzb"}, 88 {"jv","jav","jav"}, 89 {"ur","urd","urd"}, 90 {"uk","ukr","ukr"}, 91 {"ug","uig","uig"}, 92 {"zu","zul","zul"}, 93 {"ja","jpn","jpn"}, 94 {"or","ori","ori"}, 95 {"om","orm","orm"}, 96 {"zh","zho","chi"}, 97 {"tw","twi","twi"}, 98 {"de","deu","ger"}, 99 {"oc","oci","oci"}, 100 {"za","zha","zha"}, 101 {"tt","tat","tat"}, 102 {"iu","iku","iku"}, 103 {"ts","tso","tso"}, 104 {"it","ita","ita"}, 105 {"tr","tur","tur"}, 106 {"da","dan","dan"}, 107 {"is","isl","ice"}, 108 {"to","ton","ton"}, 109 {"tl","tgl","tgl"}, 110 {"tk","tuk","tuk"}, 111 {"ik","ipk","ipk"}, 112 {"ti","tir","tir"}, 113 {"th","tha","tha"}, 114 {"tg","tgk","tgk"}, 115 {"te","tel","tel"}, 116 {"cy","cym","wel"}, 117 {"ie","ile","ile"}, 118 {"id","ind","ind"}, 119 {"ta","tam","tam"}, 120 {"ia","ina","ina"}, 121 {"cs","ces","cze"}, 122 {"yo","yor","yor"}, 123 {"no","nor","nor"}, 124 {"co","cos","cos"}, 125 {"nl","nld","dut"}, 126 {"yi","yid","yid"}, 127 {"hy","hye","arm"}, 128 {"sw","swa","swa"}, 129 {"ne","nep","nep"}, 130 {"sv","swe","swe"}, 131 {"su","sun","sun"}, 132 {"hu","hun","hun"}, 133 {"na","nau","nau"}, 134 {"sr","srp","scc"}, 135 {"ca","cat","cat"}, 136 {"sq","sqi","alb"}, 137 {"hr","hrv","scr"}, 138 {"so","som","som"}, 139 {"sn","sna","sna"}, 140 {"sm","smo","smo"}, 141 {"sl","slv","slv"}, 142 {"sk","slk","slo"}, 143 {"si","sin","sin"}, 144 {"hi","hin","hin"}, 145 {"my","mya","bur"}, 146 {"sd","snd","snd"}, 147 {"he","heb","heb"}, 148 {"sa","san","san"}, 149 {"mt","mlt","mlt"}, 150 {"ms","msa","may"}, 151 {"ha","hau","hau"}, 152 {"mr","mar","mar"}, 153 {"br","bre","bre"}, 154 {"mo","mol","mol"}, 155 {"bo","bod","tib"}, 156 {"mn","mon","mon"}, 157 {"bn","ben","ben"}, 158 {"ml","mal","mal"}, 159 {"mk","mkd","mac"}, 160 {"xh","xho","xho"}, 161 {"mi","mri","mao"}, 162 {"bi","bis","bis"}, 163 {"bh","bih","bih"}, 164 {"mg","mlg","mlg"}, 165 {"bg","bul","bul"}, 166 {"rw","kin","kin"}, 167 {"be","bel","bel"}, 168 {"ru","rus","rus"}, 169 {"gu","guj","guj"}, 170 {"ba","bak","bak"}, 171 {"ro","ron","rum"}, 172 {"rm","roh","roh"}, 173 {"gn","grn","grn"}, 174 {"az","aze","aze"}, 175 {"ay","aym","aym"}, 176 {"gd","gla","gla"}, 177 {"lv","lav","lav"}, 178 {"lt","lit","lit"}, 179 {"ga","gle","gle"}, 180 {"as","asm","asm"}, 181 {"ar","ara","ara"}, 182 {"wo","wol","wol"}, 183 {"ln","lin","lin"}, 184 {"am","amh","amh"}, 185 {"fy","fry","fry"}, 186 {"af","afr","afr"}, 187 {"qu","que","que"}, 188 {"ab","abk","abk"}, 189 {"la","lat","lat"}, 190 {"aa","aar","aar"}, 191 {"fr","fra","fre"}, 192 {"fo","fao","fao"}, 193 {"fj","fij","fij"}, 194 {"fi","fin","fin"}, 195 {"ky","kir","kir"}, 196 {"ku","kur","kur"}, 197 {"fa","fas","per"}, 198 {"ks","kas","kas"}, 199 {"vo","vol","vol"}, 200 {"ko","kor","kor"}, 201 {"kn","kan","kan"}, 202 {"kk","kaz","kaz"}, 203 {"vi","vie","vie"}, 204 }; 205 206 /* 207 The following code was used to generate the table above from the two ISO standards. 208 It matches the language names (not the codes) from both standards to associate 209 the two and three letter codes. 210 211 private static final String ISO639 = "d:\\temp\\iso639.txt"; 212 private static final String ISO6392 = "d:\\temp\\iso-639-2.txt"; 213 private static void generateTables() { 214 try { 215 BufferedReader ISO639File = new BufferedReader(new FileReader(ISO639)); 216 Hashtable i639 = new Hashtable(); 217 for (String line = ISO639File.readLine(); line != null; line = ISO639File.readLine()) { 218 if (!line.startsWith("#")) { 219 final int ndx = line.indexOf(' '); 220 final String arg1 = line.substring(0, ndx); 221 final int ndx2 = line.indexOf(' ', ndx+1); 222 final String arg2 = line.substring(ndx+1, ndx2 < 0 ? line.length() : ndx2); 223 i639.put(arg1, arg2); 224 } 225 } 226 227 BufferedReader ISO6392File = new BufferedReader(new FileReader(ISO6392)); 228 Hashtable i6392 = new Hashtable(); 229 for (String line = ISO6392File.readLine(); line != null; line = ISO6392File.readLine()) { 230 final int ndx = line.indexOf(' '); 231 final int ndx2 = line.indexOf(' ', ndx+1); 232 int ndx3 = line.indexOf(' ', ndx2+1); 233 if (ndx3 < 0) ndx3 = line.length(); 234 final String arg1 = line.substring(0, ndx); 235 final String arg2 = line.substring(ndx+1, ndx2); 236 final String arg3 = line.substring(ndx2+1, ndx3); 237 i6392.put(arg3, new ISO6392Entry(arg1, arg2)); 238 } 239 240 Enumeration keys = i639.keys(); 241 while (keys.hasMoreElements()) { 242 final Object key = keys.nextElement(); 243 final Object name = i639.get(key); 244 final Object value = i6392.get(name); 245 246 if (value != null) { 247 System.out.print("{"); 248 System.out.print("\""+key+"\","); 249 System.out.print(value); 250 System.out.println("},"); 251 } 252 } 253 } catch (Exception e) { 254 System.out.println(e); 255 } 256 } 257 258 259 private static final class ISO6392Entry { 260 public final String code; 261 public final String name; 262 public ISO6392Entry(String code, String name) { 263 this.code = code; 264 this.name = name; 265 } 266 public String toString() { 267 return "\""+code+"\",\""+name+"\""; 268 } 269 270 } 271 */ 272 273 } 274 275 /* 276 277 data from ftp://dkuug.dk on March 4, 1999 278 verified by http://www.triacom.com/archive/iso639-2.en.html 279 280 iso 639 data 281 aa Afar 282 ab Abkhazian 283 af Afrikaans 284 am Amharic 285 ar Arabic 286 as Assamese 287 ay Aymara 288 az Azerbaijani 289 ba Bashkir 290 be Belarussian 291 bg Bulgarian 292 bh Bihari 293 bi Bislama 294 bn Bengali 295 bo Tibetan 296 br Breton 297 ca Catalan 298 co Corsican 299 cs Czech 300 cy Welsh 301 da Danish 302 de German 303 dz Bhutani 304 el Greek 305 en English 306 eo Esperanto 307 es Spanish 308 et Estonian 309 eu Basque 310 fa Persian 311 fi Finnish 312 fj Fijian 313 fo Faroese 314 fr French 315 fy Frisian 316 ga Irish 317 gd Gaelic 318 gl Galician 319 gn Guarani 320 gu Gujarati 321 ha Hausa 322 he Hebrew 323 hi Hindi 324 hr Croatian 325 hu Hungarian 326 hy Armenian 327 ia Interlingua 328 id Indonesian 329 ie Interlingue 330 ik Inupiak 331 is Icelandic 332 it Italian 333 iu Inuktitut 334 ja Japanese 335 jw Javanese 336 ka Georgian 337 kk Kazakh 338 kl Greenlandic 339 km Cambodian 340 kn Kannada 341 ko Korean 342 ks Kashmiri 343 ku Kurdish 344 ky Kirghiz 345 la Latin 346 ln Lingala 347 lo Laothian 348 lt Lithuanian 349 lv Latvian 350 mg Malagasy 351 mi Maori 352 mk Macedonian 353 ml Malayalam 354 mn Mongolian 355 mo Moldavian 356 mr Marathi 357 ms Malay 358 mt Maltese 359 my Burmese 360 na Nauru 361 ne Nepali 362 nl Dutch 363 no Norwegian 364 oc Occitan 365 om Oromo 366 or Oriya 367 pa Punjabi 368 pl Polish 369 ps Pushto 370 pt Portuguese 371 qu Quechua 372 rm Raeto-Romance 373 rn Kirundi 374 ro Romanian 375 ru Russian 376 rw Kinyarwanda 377 sa Sanskrit 378 sd Sindhi 379 sg Sangho 380 sh Croatian (Serbo) 381 si Sinhalese 382 sk Slovak 383 sl Slovenian 384 sm Samoan 385 sn Shona 386 so Somali 387 sq Albanian 388 sr Serbian 389 ss Siswati 390 st Sesotho 391 su Sundanese 392 sv Swedish 393 sw Swahili 394 ta Tamil 395 te Telugu 396 tg Tajik 397 th Thai 398 ti Tigrinya 399 tk Turkmen 400 tl Tagalog 401 tn Setswana 402 to Tonga 403 tr Turkish 404 ts Tsonga 405 tt Tatar 406 tw Twi 407 ug Uighur 408 uk Ukrainian 409 ur Urdu 410 uz Uzbek 411 vi Vietnamese 412 vo Volapuk 413 wo Wolof 414 xh Xhosa 415 yi Yiddish 416 yo Yoruba 417 za Zhuang 418 zh Chinese 419 zu Zulu 420 421 ISO 639-2 data 422 423 aar aar Afar 424 abk abk Abkhazian 425 ace ace Achinese 426 ach ach Acoli 427 ada ada Adangme 428 afa afa Afro-Asiatic (Other) 429 afh afh Afrihili 430 afr afr Afrikaans 431 aka aka Akan 432 akk akk Akkadian 433 ale ale Aleut 434 alg alg Algonquian languages 435 amh amh Amharic 436 ang ang English-Old (ca. 450-1100) 437 apa apa Apache languages 438 ara ara Arabic 439 arc arc Aramaic 440 arn arn Araucanian 441 arp arp Arapaho 442 art art Artificial (Other) 443 arw arw Arawak 444 asm asm Assamese 445 ath ath Athapascan languages 446 aus aus Australian languages 447 ava ava Avaric 448 ave ave Avestan 449 awa awa Awadhi 450 aym aym Aymara 451 aze aze Azerbaijani 452 bad bad Banda 453 bai bai Bamileke languages 454 bak bak Bashkir 455 bal bal Baluchi 456 bam bam Bambara 457 ban ban Balinese 458 bas bas Basa 459 bat bat Baltic (Other) 460 bej bej Beja 461 bel bel Belarussian 462 bem bem Bemba 463 ben ben Bengali 464 ber ber Berber (Other) 465 bho bho Bhojpuri 466 bih bih Bihari 467 bik bik Bikol 468 bin bin Bini 469 bis bis Bislama 470 bla bla Siksika 471 bnt bnt Bantu (Other) 472 bod tib Tibetan 473 bra bra Braj 474 bre bre Breton 475 btk btk Batak (Indonesia) 476 bua bua Buriat 477 bug bug Buginese 478 bul bul Bulgarian 479 cad cad Caddo 480 cai cai Central-American-Indian (Other) 481 car car Carib 482 cat cat Catalan 483 cau cau Caucasian (Other) 484 ceb ceb Cebuano 485 cel cel Celtic (Other) 486 ces cze Czech 487 cha cha Chamorro 488 chb chb Chibcha 489 che che Chechen 490 chg chg Chagatai 491 chk chk Chuukese 492 chm chm Mari 493 chn chn Chinook-jargon 494 cho cho Choctaw 495 chp chp Chipewyan 496 chr chr Cherokee 497 chu chu Church-Slavic 498 chv chv Chuvash 499 chy chy Cheyenne 500 cmc cmc Chamic languages 501 cop cop Coptic 502 cor cor Cornish 503 cos cos Corsican 504 cpe cpe Creoles-and-pidgins-English-based (Other) 505 cpf cpf Creoles-and-pidgins-French-based (Other) 506 cpp cpp Creoles-and-pidgins-Portuguese-based (Other) 507 cre cre Cree 508 crp crp Creoles-and-pidgins (Other) 509 cus cus Cushitic (Other) 510 cym wel Welsh 511 dak dak Dakota 512 dan dan Danish 513 day day Dayak 514 del del Delaware 515 den den Slave (Athapascan) 516 deu ger German 517 dgr dgr Dogrib 518 din din Dinka 519 div div Divehi 520 doi doi Dogri 521 dra dra Dravidian (Other) 522 dua dua Duala 523 dum dum Dutch-Middle (ca. 1050-1350) 524 dyu dyu Dyula 525 dzo dzo Dzongkha 526 efi efi Efik 527 egy egy Egyptian (Ancient) 528 eka eka Ekajuk 529 ell gre Greek Modern (post 1453) 530 elx elx Elamite 531 eng eng English 532 enm enm English-Middle (1100-1500) 533 epo epo Esperanto 534 est est Estonian 535 eus baq Basque 536 ewe ewe Ewe 537 ewo ewo Ewondo 538 fan fan Fang 539 fao fao Faroese 540 fas per Persian 541 fat fat Fanti 542 fij fij Fijian 543 fin fin Finnish 544 fiu fiu Finno-Ugrian (Other) 545 fon fon Fon 546 fra fre French 547 frm frm French-Middle (ca. 1400-1600) 548 fro fro French-Old (842-ca. 1400) 549 fry fry Frisian 550 ful ful Fulah 551 fur fur Friulian 552 gaa gaa Ga 553 gay gay Gayo 554 gba gba Gbaya 555 gem gem Germanic (Other) 556 gez gez Geez 557 gil gil Gilbertese 558 gdh gae Gaelic 559 gai iri Irish 560 glg glg Gallegan 561 glv glv Manx 562 gmh gmh German-Middle High (ca. 1050-1500) 563 goh goh German-Old High (ca. 750-1050) 564 gon gon Gondi 565 gor gor Gorontalo 566 got got Gothic 567 grb grb Grebo 568 grc grc Greek-Ancient (to 1453) 569 grn grn Guarani 570 guj guj Gujarati 571 gwi gwi Gwich'in 572 hai hai Haida 573 hau hau Hausa 574 haw haw Hawaiian 575 heb heb Hebrew 576 her her Herero 577 hil hil Hiligaynon 578 him him Himachali 579 hin hin Hindi 580 hit hit Hittite 581 hmn hmn Hmong 582 hmo hmo Hiri Motu 583 hrv scr Croatian 584 hun hun Hungarian 585 hup hup Hupa 586 hye arm Armenian 587 iba iba Iban 588 ibo ibo Igbo 589 ijo ijo Ijo 590 iku iku Inuktitut 591 ile ile Interlingue 592 ilo ilo Iloko 593 ina ina Interlingua (International Auxilary Language Association) 594 inc inc Indic (Other) 595 ind ind Indonesian 596 ine ine Indo-European (Other) 597 ipk ipk Inupiak 598 ira ira Iranian (Other) 599 iro iro Iroquoian languages 600 isl ice Icelandic 601 ita ita Italian 602 jaw jav Javanese 603 jpn jpn Japanese 604 jpr jpr Judeo-Persian 605 jrb jrb Judeo-Arabic 606 kaa kaa Kara-Kalpak 607 kab kab Kabyle 608 kac kac Kachin 609 kal kal Kalaallisut 610 kam kam Kamba 611 kan kan Kannada 612 kar kar Karen 613 kas kas Kashmiri 614 kat geo Georgian 615 kau kau Kanuri 616 kaw kaw Kawi 617 kaz kaz Kazakh 618 kha kha Khasi 619 khi khi Khoisan (Other) 620 khm khm Khmer 621 kho kho Khotanese 622 kik kik Kikuyu 623 kin kin Kinyarwanda 624 kir kir Kirghiz 625 kmb kmb Kimbundu 626 kok kok Konkani 627 kom kom Komi 628 kon kon Kongo 629 kor kor Korean 630 kos kos Kosraean 631 kpe kpe Kpelle 632 kro kro Kru 633 kru kru Kurukh 634 kua kua Kuanyama 635 kum kum Kumyk 636 kur kur Kurdish 637 kut kut Kutenai 638 lad lad Ladino 639 lah lah Lahnda 640 lam lam Lamba 641 lao lao Lao 642 lat lat Latin 643 lav lav Latvian 644 lez lez Lezghian 645 lin lin Lingala 646 lit lit Lithuanian 647 lol lol Mongo 648 loz loz Lozi 649 ltz ltz Letzeburgesch 650 lua lua Luba-Lulua 651 lub lub Luba-Katanga 652 lug lug Ganda 653 lui lui Luiseno 654 lun lun Lunda 655 luo luo Luo (Kenya and Tanzania) 656 lus lus Lushai 657 mad mad Madurese 658 mag mag Magahi 659 mah mah Marshall 660 mai mai Maithili 661 mak mak Makasar 662 mal mal Malayalam 663 man man Mandingo 664 map map Austronesian (Other) 665 mar mar Marathi 666 mas mas Masai 667 mdr mdr Mandar 668 men men Mende 669 mga mga Irish-Middle (900-1200) 670 mic mic Micmac 671 min min Minangkabau 672 mis mis Miscellaneous languages 673 mkd mac Macedonian 674 mkh mkh Mon-Khmer (Other) 675 mlg mlg Malagasy 676 mlt mlt Maltese 677 mni mni Manipuri 678 mno mno Manobo languages 679 moh moh Mohawk 680 mol mol Moldavian 681 mon mon Mongolian 682 mos mos Mossi 683 mri mao Maori 684 msa may Malay 685 mul mul Multiple languages 686 mun mun Munda languages 687 mus mus Creek 688 mwr mwr Marwari 689 mya bur Burmese 690 myn myn Mayan languages 691 nah nah Nahuatl 692 nai nai North American Indian (Other) 693 nau nau Nauru 694 nav nav Navajo 695 nbl nbl Ndebele, South 696 nde nde Ndebele, North 697 ndo ndo Ndonga 698 nep nep Nepali 699 new new Newari 700 nia nia Nias 701 nic nic Niger-Kordofanian (Other) 702 niu niu Niuean 703 nld dut Dutch 704 non non Norse, Old 705 nor nor Norwegian 706 nso nso Sohto, Northern 707 nub nub Nubian languages 708 nya nya Nyanja 709 nym nym Nyamwezi 710 nyn nyn Nyankole 711 nyo nyo Nyoro 712 nzi nzi Nzima 713 oci oci Occitan (post 1500) 714 oji oji Ojibwa 715 ori ori Oriya 716 orm orm Oromo 717 osa osa Osage 718 oss oss Ossetic 719 ota ota Turkish, Ottoman (1500-1928) 720 oto oto Otomian languages 721 paa paa Papuan (Other) 722 pag pag Pangasinan 723 pal pal Pahlavi 724 pam pam Pampanga 725 pan pan Panjabi 726 pap pap Papiamento 727 pau pau Palauan 728 peo peo Persian, Old (ca. 600-400 B.C.) 729 phi phi Philippine (Other) 730 phn phn Phoenician 731 pli pli Pali 732 pol pol Polish 733 pon pon Pohnpeian 734 por por Portuguese 735 pra pra Prakrit languages 736 pro pro Proven\u00E7al, Old (to 1500) 737 pus pus Pushto 738 qaa-qtz qaa-qtz Reserved for local use 739 que que Quechua 740 raj raj Rajasthani 741 rap rap Rapanui 742 rar rar Rarotongan 743 roa roa Romance (Other) 744 roh roh Raeto-Romance 745 rom rom Romany 746 ron rum Romanian 747 run run Rundi 748 rus rus Russian 749 sad sad Sandawe 750 sag sag Sango 751 sah sah Yakut 752 sai sai South American Indian (Other) 753 sal sal Salishan languages 754 sam sam Samaritan Aramaic 755 san san Sanskrit 756 sas sas Sasak 757 sat sat Santali 758 sco sco Scots 759 sel sel Selkup 760 sem sem Semitic (Other) 761 sga sga Irish-Old (to 900) 762 shn shn Shan 763 sid sid Sidamo 764 sin sin Sinhalese 765 sio sio Siouan languages 766 sit sit Sino-Tibetan (Other) 767 sla sla Slavic (Other) 768 slk slo Slovak 769 slv slv Slovenian 770 smi smi Sami languages 771 smo smo Samoan 772 sna sna Shona 773 snd snd Sindhi 774 snk snk Soninke 775 sog sog Sogdian 776 som som Somali 777 son son Songhai 778 sot sot Sotho Southern 779 spa spa Spanish 780 sqi alb Albanian 781 srd srd Sardinian 782 srp scc Serbian 783 srr srr Serer 784 ssa ssa Nilo-Saharan (Other) 785 ssw ssw Swati 786 suk suk Sukuma 787 sun sun Sundanese 788 sus sus Susu 789 sux sux Sumerian 790 swa swa Swahili 791 swe swe Swedish 792 syr syr Syriac 793 tah tah Tahitian 794 tai tai Tai (Other) 795 tam tam Tamil 796 tat tat Tatar 797 tel tel Telugu 798 tem tem Timne 799 ter ter Tereno 800 tet tet Tetum 801 tgk tgk Tajik 802 tgl tgl Tagalog 803 tha tha Thai 804 tig tig Tigre 805 tir tir Tigrinya 806 tiv tiv Tiv 807 tkl tkl Tokelau 808 tli tli Tlingit 809 tmh tmh Tamashek 810 tog tog Tonga (Nyasa) 811 ton ton Tonga (Tonga Islands) 812 tpi tpi Tok Pisin 813 tsi tsi Tsimshian 814 tsn tsn Tswana 815 tso tso Tsonga 816 tuk tuk Turkmen 817 tum tum Tumbuka 818 tur tur Turkish 819 tut tut Altaic 820 tvl tvl Tuvalu 821 twi twi Twi 822 tyv tyv Tuvinian 823 uga uga Ugaritic 824 uig uig Uighur 825 ukr ukr Ukrainian 826 umb umb Umbundu 827 und und Undetermined 828 urd urd Urdu 829 uzb uzb Uzbek 830 vai vai Vai 831 ven ven Venda 832 vie vie Vietnamese 833 vol vol Volapuk 834 vot vot Votic 835 wak wak Wakashan 836 wal wal Walamo 837 war war Waray 838 was was Washo 839 wen wen Sorbian 840 wol wol Wolof 841 xho xho Xhosa 842 yao yao Yao 843 yap yap Yapese 844 yid yid Yiddish 845 yor yor Yoruba 846 ypk ypk Yupik 847 zap zap Zapotec 848 zen zen Zenaga 849 zha zha Zhuang 850 zho chi Chinese 851 znd znd Zande 852 zul zul Zulu 853 zun zun Zuni 854 855 */