;;; -*- Mode: Lisp; show-trailing-whitespace: t; Base: 10; indent-tabs: nil; Syntax: ANSI-Common-Lisp; Package: ISO-639-2; -*- ;;; Copyright (c) 2013, Mark VandenBrink. All rights reserved. (in-package #:iso-639-2) (defparameter *langs* '(:aar "Afar" :abk "Abkhazian" :ace "Achinese" :ach "Acoli" :ada "Adangme" :ady "Adyghe" :afa "Afro-Asiatic languages" :afh "Afrihili" :afr "Afrikaans" :ain "Ainu" :aka "Akan" :akk "Akkadian" :alb "Albanian" :ale "Aleut" :alg "Algonquian languages" :alt "Southern Altai" :amh "Amharic" :ang "English, Old (ca.450-1100)" :anp "Angika" :apa "Apache languages" :ara "Arabic" :arc "Official Aramaic (700-300 BCE)" :arg "Aragonese" :arm "Armenian" :arn "Mapudungun" :arp "Arapaho" :art "Artificial languages" :arw "Arawak" :asm "Assamese" :ast "Asturian" :ath "Athapascan languages" :aus "Australian languages" :ava "Avaric" :ave "Avestan" :awa "Awadhi" :aym "Aymara" :aze "Azerbaijani" :bad "Banda languages" :bai "Bamileke languages" :bak "Bashkir" :bal "Baluchi" :bam "Bambara" :ban "Balinese" :baq "Basque" :bas "Basa" :bat "Baltic languages" :bej "Beja" :bel "Belarusian" :bem "Bemba" :ben "Bengali" :ber "Berber languages" :bho "Bhojpuri" :bih "Bihari languages" :bik "Bikol" :bin "Bini" :bis "Bislama" :bla "Siksika" :bnt "Bantu languages" :bos "Bosnian" :bra "Braj" :bre "Breton" :btk "Batak languages" :bua "Buriat" :bug "Buginese" :bul "Bulgarian" :bur "Burmese" :byn "Blin" :cad "Caddo" :cai "Central American Indian languages" :car "Galibi Carib" :cat "Catalan" :cau "Caucasian languages" :ceb "Cebuano" :cel "Celtic languages" :cha "Chamorro" :chb "Chibcha" :che "Chechen" :chg "Chagatai" :chi "Chinese" :chk "Chuukese" :chm "Mari" :chn "Chinook jargon" :cho "Choctaw" :chp "Chipewyan" :chr "Cherokee" :chu "Church Slavic" :chv "Chuvash" :chy "Cheyenne" :cmc "Chamic languages" :cop "Coptic" :cor "Cornish" :cos "Corsican" :cpe "Creoles and pidgins, English based" :cpf "Creoles and pidgins, French-based" :cpp "Creoles and pidgins, Portuguese-based" :cre "Cree" :crh "Crimean Tatar" :crp "Creoles and pidgins" :csb "Kashubian" :cus "Cushitic languages" :cze "Czech" :dak "Dakota" :dan "Danish" :dar "Dargwa" :day "Land Dayak languages" :del "Delaware" :den "Slave (Athapascan)" :dgr "Dogrib" :din "Dinka" :div "Divehi" :doi "Dogri" :dra "Dravidian languages" :dsb "Lower Sorbian" :dua "Duala" :dum "Dutch, Middle (ca.1050-1350)" :dut "Dutch" :dyu "Dyula" :dzo "Dzongkha" :efi "Efik" :egy "Egyptian (Ancient)" :eka "Ekajuk" :elx "Elamite" :eng "English" :enm "English, Middle (1100-1500)" :epo "Esperanto" :est "Estonian" :ewe "Ewe" :ewo "Ewondo" :fan "Fang" :fao "Faroese" :fat "Fanti" :fij "Fijian" :fil "Filipino" :fin "Finnish" :fiu "Finno-Ugrian languages" :fon "Fon" :fre "French" :frm "French, Middle (ca.1400-1600)" :fro "French, Old (842-ca.1400)" :frr "Northern Frisian" :frs "Eastern Frisian" :fry "Western Frisian" :ful "Fulah" :fur "Friulian" :gaa "Ga" :gay "Gayo" :gba "Gbaya" :gem "Germanic languages" :geo "Georgian" :ger "German" :gez "Geez" :gil "Gilbertese" :gla "Gaelic" :gle "Irish" :glg "Galician" :glv "Manx" :gmh "German, Middle High (ca.1050-1500)" :goh "German, Old High (ca.750-1050)" :gon "Gondi" :gor "Gorontalo" :got "Gothic" :grb "Grebo" :grc "Greek, Ancient (to 1453)" :gre "Greek, Modern (1453-)" :grn "Guarani" :gsw "Swiss German" :guj "Gujarati" :gwi "Gwich'in" :hai "Haida" :hat "Haitian" :hau "Hausa" :haw "Hawaiian" :heb "Hebrew" :her "Herero" :hil "Hiligaynon" :him "Himachali languages" :hin "Hindi" :hit "Hittite" :hmn "Hmong" :hmo "Hiri Motu" :hrv "Croatian" :hsb "Upper Sorbian" :hun "Hungarian" :hup "Hupa" :iba "Iban" :ibo "Igbo" :ice "Icelandic" :ido "Ido" :iii "Sichuan Yi" :ijo "Ijo languages" :iku "Inuktitut" :ile "Interlingue" :ilo "Iloko" :ina "Interlingua (International Auxiliary Language Association)" :inc "Indic languages" :ind "Indonesian" :ine "Indo-European languages" :inh "Ingush" :ipk "Inupiaq" :ira "Iranian languages" :iro "Iroquoian languages" :ita "Italian" :jav "Javanese" :jbo "Lojban" :jpn "Japanese" :jpr "Judeo-Persian" :jrb "Judeo-Arabic" :kaa "Kara-Kalpak" :kab "Kabyle" :kac "Kachin" :kal "Kalaallisut" :kam "Kamba" :kan "Kannada" :kar "Karen languages" :kas "Kashmiri" :kau "Kanuri" :kaw "Kawi" :kaz "Kazakh" :kbd "Kabardian" :kha "Khasi" :khi "Khoisan languages" :khm "Central Khmer" :kho "Khotanese" :kik "Kikuyu" :kin "Kinyarwanda" :kir "Kirghiz" :kmb "Kimbundu" :kok "Konkani" :kom "Komi" :kon "Kongo" :kor "Korean" :kos "Kosraean" :kpe "Kpelle" :krc "Karachay-Balkar" :krl "Karelian" :kro "Kru languages" :kru "Kurukh" :kua "Kuanyama" :kum "Kumyk" :kur "Kurdish" :kut "Kutenai" :lad "Ladino" :lah "Lahnda" :lam "Lamba" :lao "Lao" :lat "Latin" :lav "Latvian" :lez "Lezghian" :lim "Limburgan" :lin "Lingala" :lit "Lithuanian" :lol "Mongo" :loz "Lozi" :ltz "Luxembourgish" :lua "Luba-Lulua" :lub "Luba-Katanga" :lug "Ganda" :lui "Luiseno" :lun "Lunda" :luo "Luo (Kenya and Tanzania)" :lus "Lushai" :mac "Macedonian" :mad "Madurese" :mag "Magahi" :mah "Marshallese" :mai "Maithili" :mak "Makasar" :mal "Malayalam" :man "Mandingo" :mao "Maori" :map "Austronesian languages" :mar "Marathi" :mas "Masai" :may "Malay" :mdf "Moksha" :mdr "Mandar" :men "Mende" :mga "Irish, Middle (900-1200)" :mic "Mi'kmaq" :min "Minangkabau" :mis "Uncoded languages" :mkh "Mon-Khmer languages" :mlg "Malagasy" :mlt "Maltese" :mnc "Manchu" :mni "Manipuri" :mno "Manobo languages" :moh "Mohawk" :mon "Mongolian" :mos "Mossi" :mul "Multiple languages" :mun "Munda languages" :mus "Creek" :mwl "Mirandese" :mwr "Marwari" :myn "Mayan languages" :myv "Erzya" :nah "Nahuatl languages" :nai "North American Indian languages" :nap "Neapolitan" :nau "Nauru" :nav "Navajo" :nbl "Ndebele, South" :nde "Ndebele, North" :ndo "Ndonga" :nds "Low German" :nep "Nepali" :new "Nepal Bhasa" :nia "Nias" :nic "Niger-Kordofanian languages" :niu "Niuean" :nno "Norwegian Nynorsk" :nob "Bokmål, Norwegian" :nog "Nogai" :non "Norse, Old" :nor "Norwegian" :nqo "N'Ko" :nso "Pedi" :nub "Nubian languages" :nwc "Classical Newari" :nya "Chichewa" :nym "Nyamwezi" :nyn "Nyankole" :nyo "Nyoro" :nzi "Nzima" :oci "Occitan (post 1500)" :oji "Ojibwa" :ori "Oriya" :orm "Oromo" :osa "Osage" :oss "Ossetian" :ota "Turkish, Ottoman (1500-1928)" :oto "Otomian languages" :paa "Papuan languages" :pag "Pangasinan" :pal "Pahlavi" :pam "Pampanga" :pan "Panjabi" :pap "Papiamento" :pau "Palauan" :peo "Persian, Old (ca.600-400 B.C.)" :per "Persian" :phi "Philippine languages" :phn "Phoenician" :pli "Pali" :pol "Polish" :pon "Pohnpeian" :por "Portuguese" :pra "Prakrit languages" :pro "Provençal, Old (to 1500)" :pus "Pushto" :qaa-"qtz Reserved for local use" :que "Quechua" :raj "Rajasthani" :rap "Rapanui" :rar "Rarotongan" :roa "Romance languages" :roh "Romansh" :rom "Romany" :rum "Romanian" :run "Rundi" :rup "Aromanian" :rus "Russian" :sad "Sandawe" :sag "Sango" :sah "Yakut" :sai "South American Indian languages" :sal "Salishan languages" :sam "Samaritan Aramaic" :san "Sanskrit" :sas "Sasak" :sat "Santali" :scn "Sicilian" :sco "Scots" :sel "Selkup" :sem "Semitic languages" :sga "Irish, Old (to 900)" :sgn "Sign Languages" :shn "Shan" :sid "Sidamo" :sin "Sinhala" :sio "Siouan languages" :sit "Sino-Tibetan languages" :sla "Slavic languages" :slo "Slovak" :slv "Slovenian" :sma "Southern Sami" :sme "Northern Sami" :smi "Sami languages" :smj "Lule Sami" :smn "Inari Sami" :smo "Samoan" :sms "Skolt Sami" :sna "Shona" :snd "Sindhi" :snk "Soninke" :sog "Sogdian" :som "Somali" :son "Songhai languages" :sot "Sotho, Southern" :spa "Spanish" :srd "Sardinian" :srn "Sranan Tongo" :srp "Serbian" :srr "Serer" :ssa "Nilo-Saharan languages" :ssw "Swati" :suk "Sukuma" :sun "Sundanese" :sus "Susu" :sux "Sumerian" :swa "Swahili" :swe "Swedish" :syc "Classical Syriac" :syr "Syriac" :tah "Tahitian" :tai "Tai languages" :tam "Tamil" :tat "Tatar" :tel "Telugu" :tem "Timne" :ter "Tereno" :tet "Tetum" :tgk "Tajik" :tgl "Tagalog" :tha "Thai" :tib "Tibetan" :tig "Tigre" :tir "Tigrinya" :tiv "Tiv" :tkl "Tokelau" :tlh "Klingon" :tli "Tlingit" :tmh "Tamashek" :tog "Tonga (Nyasa)" :ton "Tonga (Tonga Islands)" :tpi "Tok Pisin" :tsi "Tsimshian" :tsn "Tswana" :tso "Tsonga" :tuk "Turkmen" :tum "Tumbuka" :tup "Tupi languages" :tur "Turkish" :tut "Altaic languages" :tvl "Tuvalu" :twi "Twi" :tyv "Tuvinian" :udm "Udmurt" :uga "Ugaritic" :uig "Uighur" :ukr "Ukrainian" :umb "Umbundu" :und "Undetermined" :urd "Urdu" :uzb "Uzbek" :vai "Vai" :ven "Venda" :vie "Vietnamese" :vol "Volapük" :vot "Votic" :wak "Wakashan languages" :wal "Wolaitta" :war "Waray" :was "Washo" :wel "Welsh" :wen "Sorbian languages" :wln "Walloon" :wol "Wolof" :xal "Kalmyk" :xho "Xhosa" :yao "Yao" :yap "Yapese" :yid "Yiddish" :yor "Yoruba" :ypk "Yupik languages" :zap "Zapotec" :zbl "Blissymbols" :zen "Zenaga" :zgh "Standard Moroccan Tamazight" :zha "Zhuang" :znd "Zande languages" :zul "Zulu" :zun "Zuni" :zxx "No linguistic content" :zza "Zaza" :XXX "Not Used")) (defun get-iso-639-2-language (l) "Convert an ISO-639-2 language tag into a readable language." (declare #.utils:*standard-optimize-settings*) (let* ((lang (getf *langs* (make-keyword (string-upcase l))))) (if lang lang "Bad ISO-639-2 language")))