0N/A/*
2362N/A * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
0N/A * published by the Free Software Foundation.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/A/*
0N/A @test
0N/A @summary test ISO639-2 language codes
1952N/A @compile -encoding ascii -source 5 Bug4175998Test.java
0N/A @run main Bug4175998Test
0N/A @bug 4175998
0N/A*/
0N/A/*
0N/A *
0N/A *
0N/A * (C) Copyright IBM Corp. 1998 - All Rights Reserved
0N/A *
0N/A * The original version of this source code and documentation is
0N/A * copyrighted and owned by IBM. These materials are provided
0N/A * under terms of a License Agreement between IBM and Sun.
0N/A * This technology is protected by multiple US and International
0N/A * patents. This notice and attribution to IBM may not be removed.
0N/A *
0N/A */
0N/A
0N/Aimport java.util.*;
0N/Aimport java.io.*;
0N/A
0N/A/**
0N/A * Bug4175998Test verifies that the following bug has been fixed:
0N/A * Bug 4175998 - The java.util.Locale.getISO3Language() returns wrong result for a locale with
0N/A * language code 'ta'(Tamil).
0N/A */
0N/Apublic class Bug4175998Test extends LocaleTestFmwk {
0N/A public static void main(String[] args) throws Exception {
0N/A new Bug4175998Test().run(args);
0N/A //generateTables(); //uncomment this to regenerate data tables
0N/A }
0N/A
0N/A public void testIt() throws Exception {
0N/A boolean bad = false;
0N/A for (int i = 0; i < CODES.length; i++) {
0N/A final String[] localeCodes = CODES[i];
0N/A final Locale l = new Locale(localeCodes[0], "");
0N/A final String iso3 = l.getISO3Language();
0N/A if (!iso3.equals(localeCodes[1]) /*&& !iso3.equals(localeCodes[2])*/) {
0N/A logln("Locale("+l+") returned bad ISO3 language code."
0N/A +" Got '"+iso3+"' instead of '"+localeCodes[1]+"'"/*+" or '"+localeCodes[2]+"'"*/);
0N/A bad = true;
0N/A }
0N/A }
0N/A if (bad) {
0N/A errln("Bad ISO3 language codes detected.");
0N/A }
0N/A }
0N/A
0N/A private static final String[][] CODES = {
0N/A {"pt","por","por"},
0N/A {"eu","eus","baq"},
0N/A {"ps","pus","pus"},
0N/A {"et","est","est"},
0N/A {"ka","kat","geo"},
0N/A {"es","spa","spa"},
0N/A {"eo","epo","epo"},
0N/A {"en","eng","eng"},
0N/A {"pl","pol","pol"},
0N/A {"el","ell","gre"},
0N/A {"uz","uzb","uzb"},
0N/A {"jv","jav","jav"},
0N/A {"ur","urd","urd"},
0N/A {"uk","ukr","ukr"},
0N/A {"ug","uig","uig"},
0N/A {"zu","zul","zul"},
0N/A {"ja","jpn","jpn"},
0N/A {"or","ori","ori"},
0N/A {"om","orm","orm"},
0N/A {"zh","zho","chi"},
0N/A {"tw","twi","twi"},
0N/A {"de","deu","ger"},
0N/A {"oc","oci","oci"},
0N/A {"za","zha","zha"},
0N/A {"tt","tat","tat"},
0N/A {"iu","iku","iku"},
0N/A {"ts","tso","tso"},
0N/A {"it","ita","ita"},
0N/A {"tr","tur","tur"},
0N/A {"da","dan","dan"},
0N/A {"is","isl","ice"},
0N/A {"to","ton","ton"},
0N/A {"tl","tgl","tgl"},
0N/A {"tk","tuk","tuk"},
0N/A {"ik","ipk","ipk"},
0N/A {"ti","tir","tir"},
0N/A {"th","tha","tha"},
0N/A {"tg","tgk","tgk"},
0N/A {"te","tel","tel"},
0N/A {"cy","cym","wel"},
0N/A {"ie","ile","ile"},
0N/A {"id","ind","ind"},
0N/A {"ta","tam","tam"},
0N/A {"ia","ina","ina"},
0N/A {"cs","ces","cze"},
0N/A {"yo","yor","yor"},
0N/A {"no","nor","nor"},
0N/A {"co","cos","cos"},
0N/A {"nl","nld","dut"},
0N/A {"yi","yid","yid"},
0N/A {"hy","hye","arm"},
0N/A {"sw","swa","swa"},
0N/A {"ne","nep","nep"},
0N/A {"sv","swe","swe"},
0N/A {"su","sun","sun"},
0N/A {"hu","hun","hun"},
0N/A {"na","nau","nau"},
0N/A {"sr","srp","scc"},
0N/A {"ca","cat","cat"},
0N/A {"sq","sqi","alb"},
0N/A {"hr","hrv","scr"},
0N/A {"so","som","som"},
0N/A {"sn","sna","sna"},
0N/A {"sm","smo","smo"},
0N/A {"sl","slv","slv"},
0N/A {"sk","slk","slo"},
0N/A {"si","sin","sin"},
0N/A {"hi","hin","hin"},
0N/A {"my","mya","bur"},
0N/A {"sd","snd","snd"},
0N/A {"he","heb","heb"},
0N/A {"sa","san","san"},
0N/A {"mt","mlt","mlt"},
0N/A {"ms","msa","may"},
0N/A {"ha","hau","hau"},
0N/A {"mr","mar","mar"},
0N/A {"br","bre","bre"},
0N/A {"mo","mol","mol"},
0N/A {"bo","bod","tib"},
0N/A {"mn","mon","mon"},
0N/A {"bn","ben","ben"},
0N/A {"ml","mal","mal"},
0N/A {"mk","mkd","mac"},
0N/A {"xh","xho","xho"},
0N/A {"mi","mri","mao"},
0N/A {"bi","bis","bis"},
0N/A {"bh","bih","bih"},
0N/A {"mg","mlg","mlg"},
0N/A {"bg","bul","bul"},
0N/A {"rw","kin","kin"},
0N/A {"be","bel","bel"},
0N/A {"ru","rus","rus"},
0N/A {"gu","guj","guj"},
0N/A {"ba","bak","bak"},
0N/A {"ro","ron","rum"},
0N/A {"rm","roh","roh"},
0N/A {"gn","grn","grn"},
0N/A {"az","aze","aze"},
0N/A {"ay","aym","aym"},
0N/A {"gd","gla","gla"},
0N/A {"lv","lav","lav"},
0N/A {"lt","lit","lit"},
0N/A {"ga","gle","gle"},
0N/A {"as","asm","asm"},
0N/A {"ar","ara","ara"},
0N/A {"wo","wol","wol"},
0N/A {"ln","lin","lin"},
0N/A {"am","amh","amh"},
0N/A {"fy","fry","fry"},
0N/A {"af","afr","afr"},
0N/A {"qu","que","que"},
0N/A {"ab","abk","abk"},
0N/A {"la","lat","lat"},
0N/A {"aa","aar","aar"},
0N/A {"fr","fra","fre"},
0N/A {"fo","fao","fao"},
0N/A {"fj","fij","fij"},
0N/A {"fi","fin","fin"},
0N/A {"ky","kir","kir"},
0N/A {"ku","kur","kur"},
0N/A {"fa","fas","per"},
0N/A {"ks","kas","kas"},
0N/A {"vo","vol","vol"},
0N/A {"ko","kor","kor"},
0N/A {"kn","kan","kan"},
0N/A {"kk","kaz","kaz"},
0N/A {"vi","vie","vie"},
0N/A };
0N/A
0N/A/*
0N/A The following code was used to generate the table above from the two ISO standards.
0N/A It matches the language names (not the codes) from both standards to associate
0N/A the two and three letter codes.
0N/A
0N/A private static final String ISO639 = "d:\\temp\\iso639.txt";
0N/A private static final String ISO6392 = "d:\\temp\\iso-639-2.txt";
0N/A private static void generateTables() {
0N/A try {
0N/A BufferedReader ISO639File = new BufferedReader(new FileReader(ISO639));
0N/A Hashtable i639 = new Hashtable();
0N/A for (String line = ISO639File.readLine(); line != null; line = ISO639File.readLine()) {
0N/A if (!line.startsWith("#")) {
0N/A final int ndx = line.indexOf(' ');
0N/A final String arg1 = line.substring(0, ndx);
0N/A final int ndx2 = line.indexOf(' ', ndx+1);
0N/A final String arg2 = line.substring(ndx+1, ndx2 < 0 ? line.length() : ndx2);
0N/A i639.put(arg1, arg2);
0N/A }
0N/A }
0N/A
0N/A BufferedReader ISO6392File = new BufferedReader(new FileReader(ISO6392));
0N/A Hashtable i6392 = new Hashtable();
0N/A for (String line = ISO6392File.readLine(); line != null; line = ISO6392File.readLine()) {
0N/A final int ndx = line.indexOf(' ');
0N/A final int ndx2 = line.indexOf(' ', ndx+1);
0N/A int ndx3 = line.indexOf(' ', ndx2+1);
0N/A if (ndx3 < 0) ndx3 = line.length();
0N/A final String arg1 = line.substring(0, ndx);
0N/A final String arg2 = line.substring(ndx+1, ndx2);
0N/A final String arg3 = line.substring(ndx2+1, ndx3);
0N/A i6392.put(arg3, new ISO6392Entry(arg1, arg2));
0N/A }
0N/A
0N/A Enumeration keys = i639.keys();
0N/A while (keys.hasMoreElements()) {
0N/A final Object key = keys.nextElement();
0N/A final Object name = i639.get(key);
0N/A final Object value = i6392.get(name);
0N/A
0N/A if (value != null) {
0N/A System.out.print("{");
0N/A System.out.print("\""+key+"\",");
0N/A System.out.print(value);
0N/A System.out.println("},");
0N/A }
0N/A }
0N/A } catch (Exception e) {
0N/A System.out.println(e);
0N/A }
0N/A }
0N/A
0N/A
0N/A private static final class ISO6392Entry {
0N/A public final String code;
0N/A public final String name;
0N/A public ISO6392Entry(String code, String name) {
0N/A this.code = code;
0N/A this.name = name;
0N/A }
0N/A public String toString() {
0N/A return "\""+code+"\",\""+name+"\"";
0N/A }
0N/A
0N/A }
0N/A*/
0N/A
0N/A}
0N/A
0N/A/*
0N/A
0N/Adata from ftp://dkuug.dk on March 4, 1999
0N/Averified by http://www.triacom.com/archive/iso639-2.en.html
0N/A
0N/Aiso 639 data
0N/Aaa Afar
0N/Aab Abkhazian
0N/Aaf Afrikaans
0N/Aam Amharic
0N/Aar Arabic
0N/Aas Assamese
0N/Aay Aymara
0N/Aaz Azerbaijani
0N/Aba Bashkir
0N/Abe Belarussian
0N/Abg Bulgarian
0N/Abh Bihari
0N/Abi Bislama
0N/Abn Bengali
0N/Abo Tibetan
0N/Abr Breton
0N/Aca Catalan
0N/Aco Corsican
0N/Acs Czech
0N/Acy Welsh
0N/Ada Danish
0N/Ade German
0N/Adz Bhutani
0N/Ael Greek
0N/Aen English
0N/Aeo Esperanto
0N/Aes Spanish
0N/Aet Estonian
0N/Aeu Basque
0N/Afa Persian
0N/Afi Finnish
0N/Afj Fijian
0N/Afo Faroese
0N/Afr French
0N/Afy Frisian
0N/Aga Irish
0N/Agd Gaelic
0N/Agl Galician
0N/Agn Guarani
0N/Agu Gujarati
0N/Aha Hausa
0N/Ahe Hebrew
0N/Ahi Hindi
0N/Ahr Croatian
0N/Ahu Hungarian
0N/Ahy Armenian
0N/Aia Interlingua
0N/Aid Indonesian
0N/Aie Interlingue
0N/Aik Inupiak
0N/Ais Icelandic
0N/Ait Italian
0N/Aiu Inuktitut
0N/Aja Japanese
0N/Ajw Javanese
0N/Aka Georgian
0N/Akk Kazakh
0N/Akl Greenlandic
0N/Akm Cambodian
0N/Akn Kannada
0N/Ako Korean
0N/Aks Kashmiri
0N/Aku Kurdish
0N/Aky Kirghiz
0N/Ala Latin
0N/Aln Lingala
0N/Alo Laothian
0N/Alt Lithuanian
0N/Alv Latvian
0N/Amg Malagasy
0N/Ami Maori
0N/Amk Macedonian
0N/Aml Malayalam
0N/Amn Mongolian
0N/Amo Moldavian
0N/Amr Marathi
0N/Ams Malay
0N/Amt Maltese
0N/Amy Burmese
0N/Ana Nauru
0N/Ane Nepali
0N/Anl Dutch
0N/Ano Norwegian
0N/Aoc Occitan
0N/Aom Oromo
0N/Aor Oriya
0N/Apa Punjabi
0N/Apl Polish
0N/Aps Pushto
0N/Apt Portuguese
0N/Aqu Quechua
0N/Arm Raeto-Romance
0N/Arn Kirundi
0N/Aro Romanian
0N/Aru Russian
0N/Arw Kinyarwanda
0N/Asa Sanskrit
0N/Asd Sindhi
0N/Asg Sangho
0N/Ash Croatian (Serbo)
0N/Asi Sinhalese
0N/Ask Slovak
0N/Asl Slovenian
0N/Asm Samoan
0N/Asn Shona
0N/Aso Somali
0N/Asq Albanian
0N/Asr Serbian
0N/Ass Siswati
0N/Ast Sesotho
0N/Asu Sundanese
0N/Asv Swedish
0N/Asw Swahili
0N/Ata Tamil
0N/Ate Telugu
0N/Atg Tajik
0N/Ath Thai
0N/Ati Tigrinya
0N/Atk Turkmen
0N/Atl Tagalog
0N/Atn Setswana
0N/Ato Tonga
0N/Atr Turkish
0N/Ats Tsonga
0N/Att Tatar
0N/Atw Twi
0N/Aug Uighur
0N/Auk Ukrainian
0N/Aur Urdu
0N/Auz Uzbek
0N/Avi Vietnamese
0N/Avo Volapuk
0N/Awo Wolof
0N/Axh Xhosa
0N/Ayi Yiddish
0N/Ayo Yoruba
0N/Aza Zhuang
0N/Azh Chinese
0N/Azu Zulu
0N/A
0N/AISO 639-2 data
0N/A
0N/Aaar aar Afar
0N/Aabk abk Abkhazian
0N/Aace ace Achinese
0N/Aach ach Acoli
0N/Aada ada Adangme
0N/Aafa afa Afro-Asiatic (Other)
0N/Aafh afh Afrihili
0N/Aafr afr Afrikaans
0N/Aaka aka Akan
0N/Aakk akk Akkadian
0N/Aale ale Aleut
0N/Aalg alg Algonquian languages
0N/Aamh amh Amharic
0N/Aang ang English-Old (ca. 450-1100)
0N/Aapa apa Apache languages
0N/Aara ara Arabic
0N/Aarc arc Aramaic
0N/Aarn arn Araucanian
0N/Aarp arp Arapaho
0N/Aart art Artificial (Other)
0N/Aarw arw Arawak
0N/Aasm asm Assamese
0N/Aath ath Athapascan languages
0N/Aaus aus Australian languages
0N/Aava ava Avaric
0N/Aave ave Avestan
0N/Aawa awa Awadhi
0N/Aaym aym Aymara
0N/Aaze aze Azerbaijani
0N/Abad bad Banda
0N/Abai bai Bamileke languages
0N/Abak bak Bashkir
0N/Abal bal Baluchi
0N/Abam bam Bambara
0N/Aban ban Balinese
0N/Abas bas Basa
0N/Abat bat Baltic (Other)
0N/Abej bej Beja
0N/Abel bel Belarussian
0N/Abem bem Bemba
0N/Aben ben Bengali
0N/Aber ber Berber (Other)
0N/Abho bho Bhojpuri
0N/Abih bih Bihari
0N/Abik bik Bikol
0N/Abin bin Bini
0N/Abis bis Bislama
0N/Abla bla Siksika
0N/Abnt bnt Bantu (Other)
0N/Abod tib Tibetan
0N/Abra bra Braj
0N/Abre bre Breton
0N/Abtk btk Batak (Indonesia)
0N/Abua bua Buriat
0N/Abug bug Buginese
0N/Abul bul Bulgarian
0N/Acad cad Caddo
0N/Acai cai Central-American-Indian (Other)
0N/Acar car Carib
0N/Acat cat Catalan
0N/Acau cau Caucasian (Other)
0N/Aceb ceb Cebuano
0N/Acel cel Celtic (Other)
0N/Aces cze Czech
0N/Acha cha Chamorro
0N/Achb chb Chibcha
0N/Ache che Chechen
0N/Achg chg Chagatai
0N/Achk chk Chuukese
0N/Achm chm Mari
0N/Achn chn Chinook-jargon
0N/Acho cho Choctaw
0N/Achp chp Chipewyan
0N/Achr chr Cherokee
0N/Achu chu Church-Slavic
0N/Achv chv Chuvash
0N/Achy chy Cheyenne
0N/Acmc cmc Chamic languages
0N/Acop cop Coptic
0N/Acor cor Cornish
0N/Acos cos Corsican
0N/Acpe cpe Creoles-and-pidgins-English-based (Other)
0N/Acpf cpf Creoles-and-pidgins-French-based (Other)
0N/Acpp cpp Creoles-and-pidgins-Portuguese-based (Other)
0N/Acre cre Cree
0N/Acrp crp Creoles-and-pidgins (Other)
0N/Acus cus Cushitic (Other)
0N/Acym wel Welsh
0N/Adak dak Dakota
0N/Adan dan Danish
0N/Aday day Dayak
0N/Adel del Delaware
0N/Aden den Slave (Athapascan)
0N/Adeu ger German
0N/Adgr dgr Dogrib
0N/Adin din Dinka
0N/Adiv div Divehi
0N/Adoi doi Dogri
0N/Adra dra Dravidian (Other)
0N/Adua dua Duala
0N/Adum dum Dutch-Middle (ca. 1050-1350)
0N/Adyu dyu Dyula
0N/Adzo dzo Dzongkha
0N/Aefi efi Efik
0N/Aegy egy Egyptian (Ancient)
0N/Aeka eka Ekajuk
0N/Aell gre Greek Modern (post 1453)
0N/Aelx elx Elamite
0N/Aeng eng English
0N/Aenm enm English-Middle (1100-1500)
0N/Aepo epo Esperanto
0N/Aest est Estonian
0N/Aeus baq Basque
0N/Aewe ewe Ewe
0N/Aewo ewo Ewondo
0N/Afan fan Fang
0N/Afao fao Faroese
0N/Afas per Persian
0N/Afat fat Fanti
0N/Afij fij Fijian
0N/Afin fin Finnish
0N/Afiu fiu Finno-Ugrian (Other)
0N/Afon fon Fon
0N/Afra fre French
0N/Afrm frm French-Middle (ca. 1400-1600)
0N/Afro fro French-Old (842-ca. 1400)
0N/Afry fry Frisian
0N/Aful ful Fulah
0N/Afur fur Friulian
0N/Agaa gaa Ga
0N/Agay gay Gayo
0N/Agba gba Gbaya
0N/Agem gem Germanic (Other)
0N/Agez gez Geez
0N/Agil gil Gilbertese
0N/Agdh gae Gaelic
0N/Agai iri Irish
0N/Aglg glg Gallegan
0N/Aglv glv Manx
0N/Agmh gmh German-Middle High (ca. 1050-1500)
0N/Agoh goh German-Old High (ca. 750-1050)
0N/Agon gon Gondi
0N/Agor gor Gorontalo
0N/Agot got Gothic
0N/Agrb grb Grebo
0N/Agrc grc Greek-Ancient (to 1453)
0N/Agrn grn Guarani
0N/Aguj guj Gujarati
0N/Agwi gwi Gwich'in
0N/Ahai hai Haida
0N/Ahau hau Hausa
0N/Ahaw haw Hawaiian
0N/Aheb heb Hebrew
0N/Aher her Herero
0N/Ahil hil Hiligaynon
0N/Ahim him Himachali
0N/Ahin hin Hindi
0N/Ahit hit Hittite
0N/Ahmn hmn Hmong
0N/Ahmo hmo Hiri Motu
0N/Ahrv scr Croatian
0N/Ahun hun Hungarian
0N/Ahup hup Hupa
0N/Ahye arm Armenian
0N/Aiba iba Iban
0N/Aibo ibo Igbo
0N/Aijo ijo Ijo
0N/Aiku iku Inuktitut
0N/Aile ile Interlingue
0N/Ailo ilo Iloko
0N/Aina ina Interlingua (International Auxilary Language Association)
0N/Ainc inc Indic (Other)
0N/Aind ind Indonesian
0N/Aine ine Indo-European (Other)
0N/Aipk ipk Inupiak
0N/Aira ira Iranian (Other)
0N/Airo iro Iroquoian languages
0N/Aisl ice Icelandic
0N/Aita ita Italian
0N/Ajaw jav Javanese
0N/Ajpn jpn Japanese
0N/Ajpr jpr Judeo-Persian
0N/Ajrb jrb Judeo-Arabic
0N/Akaa kaa Kara-Kalpak
0N/Akab kab Kabyle
0N/Akac kac Kachin
0N/Akal kal Kalaallisut
0N/Akam kam Kamba
0N/Akan kan Kannada
0N/Akar kar Karen
0N/Akas kas Kashmiri
0N/Akat geo Georgian
0N/Akau kau Kanuri
0N/Akaw kaw Kawi
0N/Akaz kaz Kazakh
0N/Akha kha Khasi
0N/Akhi khi Khoisan (Other)
0N/Akhm khm Khmer
0N/Akho kho Khotanese
0N/Akik kik Kikuyu
0N/Akin kin Kinyarwanda
0N/Akir kir Kirghiz
0N/Akmb kmb Kimbundu
0N/Akok kok Konkani
0N/Akom kom Komi
0N/Akon kon Kongo
0N/Akor kor Korean
0N/Akos kos Kosraean
0N/Akpe kpe Kpelle
0N/Akro kro Kru
0N/Akru kru Kurukh
0N/Akua kua Kuanyama
0N/Akum kum Kumyk
0N/Akur kur Kurdish
0N/Akut kut Kutenai
0N/Alad lad Ladino
0N/Alah lah Lahnda
0N/Alam lam Lamba
0N/Alao lao Lao
0N/Alat lat Latin
0N/Alav lav Latvian
0N/Alez lez Lezghian
0N/Alin lin Lingala
0N/Alit lit Lithuanian
0N/Alol lol Mongo
0N/Aloz loz Lozi
0N/Altz ltz Letzeburgesch
0N/Alua lua Luba-Lulua
0N/Alub lub Luba-Katanga
0N/Alug lug Ganda
0N/Alui lui Luiseno
0N/Alun lun Lunda
0N/Aluo luo Luo (Kenya and Tanzania)
0N/Alus lus Lushai
0N/Amad mad Madurese
0N/Amag mag Magahi
0N/Amah mah Marshall
0N/Amai mai Maithili
0N/Amak mak Makasar
0N/Amal mal Malayalam
0N/Aman man Mandingo
0N/Amap map Austronesian (Other)
0N/Amar mar Marathi
0N/Amas mas Masai
0N/Amdr mdr Mandar
0N/Amen men Mende
0N/Amga mga Irish-Middle (900-1200)
0N/Amic mic Micmac
0N/Amin min Minangkabau
0N/Amis mis Miscellaneous languages
0N/Amkd mac Macedonian
0N/Amkh mkh Mon-Khmer (Other)
0N/Amlg mlg Malagasy
0N/Amlt mlt Maltese
0N/Amni mni Manipuri
0N/Amno mno Manobo languages
0N/Amoh moh Mohawk
0N/Amol mol Moldavian
0N/Amon mon Mongolian
0N/Amos mos Mossi
0N/Amri mao Maori
0N/Amsa may Malay
0N/Amul mul Multiple languages
0N/Amun mun Munda languages
0N/Amus mus Creek
0N/Amwr mwr Marwari
0N/Amya bur Burmese
0N/Amyn myn Mayan languages
0N/Anah nah Nahuatl
0N/Anai nai North American Indian (Other)
0N/Anau nau Nauru
0N/Anav nav Navajo
0N/Anbl nbl Ndebele, South
0N/Ande nde Ndebele, North
0N/Ando ndo Ndonga
0N/Anep nep Nepali
0N/Anew new Newari
0N/Ania nia Nias
0N/Anic nic Niger-Kordofanian (Other)
0N/Aniu niu Niuean
0N/Anld dut Dutch
0N/Anon non Norse, Old
0N/Anor nor Norwegian
0N/Anso nso Sohto, Northern
0N/Anub nub Nubian languages
0N/Anya nya Nyanja
0N/Anym nym Nyamwezi
0N/Anyn nyn Nyankole
0N/Anyo nyo Nyoro
0N/Anzi nzi Nzima
0N/Aoci oci Occitan (post 1500)
0N/Aoji oji Ojibwa
0N/Aori ori Oriya
0N/Aorm orm Oromo
0N/Aosa osa Osage
0N/Aoss oss Ossetic
0N/Aota ota Turkish, Ottoman (1500-1928)
0N/Aoto oto Otomian languages
0N/Apaa paa Papuan (Other)
0N/Apag pag Pangasinan
0N/Apal pal Pahlavi
0N/Apam pam Pampanga
0N/Apan pan Panjabi
0N/Apap pap Papiamento
0N/Apau pau Palauan
0N/Apeo peo Persian, Old (ca. 600-400 B.C.)
0N/Aphi phi Philippine (Other)
0N/Aphn phn Phoenician
0N/Apli pli Pali
0N/Apol pol Polish
0N/Apon pon Pohnpeian
0N/Apor por Portuguese
0N/Apra pra Prakrit languages
0N/Apro pro Proven�al, Old (to 1500)
0N/Apus pus Pushto
0N/Aqaa-qtz qaa-qtz Reserved for local use
0N/Aque que Quechua
0N/Araj raj Rajasthani
0N/Arap rap Rapanui
0N/Arar rar Rarotongan
0N/Aroa roa Romance (Other)
0N/Aroh roh Raeto-Romance
0N/Arom rom Romany
0N/Aron rum Romanian
0N/Arun run Rundi
0N/Arus rus Russian
0N/Asad sad Sandawe
0N/Asag sag Sango
0N/Asah sah Yakut
0N/Asai sai South American Indian (Other)
0N/Asal sal Salishan languages
0N/Asam sam Samaritan Aramaic
0N/Asan san Sanskrit
0N/Asas sas Sasak
0N/Asat sat Santali
0N/Asco sco Scots
0N/Asel sel Selkup
0N/Asem sem Semitic (Other)
0N/Asga sga Irish-Old (to 900)
0N/Ashn shn Shan
0N/Asid sid Sidamo
0N/Asin sin Sinhalese
0N/Asio sio Siouan languages
0N/Asit sit Sino-Tibetan (Other)
0N/Asla sla Slavic (Other)
0N/Aslk slo Slovak
0N/Aslv slv Slovenian
0N/Asmi smi Sami languages
0N/Asmo smo Samoan
0N/Asna sna Shona
0N/Asnd snd Sindhi
0N/Asnk snk Soninke
0N/Asog sog Sogdian
0N/Asom som Somali
0N/Ason son Songhai
0N/Asot sot Sotho Southern
0N/Aspa spa Spanish
0N/Asqi alb Albanian
0N/Asrd srd Sardinian
0N/Asrp scc Serbian
0N/Asrr srr Serer
0N/Assa ssa Nilo-Saharan (Other)
0N/Assw ssw Swati
0N/Asuk suk Sukuma
0N/Asun sun Sundanese
0N/Asus sus Susu
0N/Asux sux Sumerian
0N/Aswa swa Swahili
0N/Aswe swe Swedish
0N/Asyr syr Syriac
0N/Atah tah Tahitian
0N/Atai tai Tai (Other)
0N/Atam tam Tamil
0N/Atat tat Tatar
0N/Atel tel Telugu
0N/Atem tem Timne
0N/Ater ter Tereno
0N/Atet tet Tetum
0N/Atgk tgk Tajik
0N/Atgl tgl Tagalog
0N/Atha tha Thai
0N/Atig tig Tigre
0N/Atir tir Tigrinya
0N/Ativ tiv Tiv
0N/Atkl tkl Tokelau
0N/Atli tli Tlingit
0N/Atmh tmh Tamashek
0N/Atog tog Tonga (Nyasa)
0N/Aton ton Tonga (Tonga Islands)
0N/Atpi tpi Tok Pisin
0N/Atsi tsi Tsimshian
0N/Atsn tsn Tswana
0N/Atso tso Tsonga
0N/Atuk tuk Turkmen
0N/Atum tum Tumbuka
0N/Atur tur Turkish
0N/Atut tut Altaic
0N/Atvl tvl Tuvalu
0N/Atwi twi Twi
0N/Atyv tyv Tuvinian
0N/Auga uga Ugaritic
0N/Auig uig Uighur
0N/Aukr ukr Ukrainian
0N/Aumb umb Umbundu
0N/Aund und Undetermined
0N/Aurd urd Urdu
0N/Auzb uzb Uzbek
0N/Avai vai Vai
0N/Aven ven Venda
0N/Avie vie Vietnamese
0N/Avol vol Volapuk
0N/Avot vot Votic
0N/Awak wak Wakashan
0N/Awal wal Walamo
0N/Awar war Waray
0N/Awas was Washo
0N/Awen wen Sorbian
0N/Awol wol Wolof
0N/Axho xho Xhosa
0N/Ayao yao Yao
0N/Ayap yap Yapese
0N/Ayid yid Yiddish
0N/Ayor yor Yoruba
0N/Aypk ypk Yupik
0N/Azap zap Zapotec
0N/Azen zen Zenaga
0N/Azha zha Zhuang
0N/Azho chi Chinese
0N/Aznd znd Zande
0N/Azul zul Zulu
0N/Azun zun Zuni
0N/A
0N/A*/