瀏覽代碼

Adding language decode support (in a decidely hacky way)

Mark VandenBrink 12 年之前
父節點
當前提交
9ebadccd57
共有 1 個文件被更改,包括 496 次插入0 次删除
  1. 496 0
      iso-639-2.lisp

+ 496 - 0
iso-639-2.lisp

@@ -0,0 +1,496 @@
+(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)
+  (let* ((lang (getf *langs* (alexandria:make-keyword (string-upcase l)))))
+	(if lang lang "Bad ISO-639-2 language")))
+
+