--- C:/Users/L00329342/AppData/Local/Temp/TCV533.tmp/millennium.1.13.2.33.2.2.2.58.module	Mon Jan 25 10:30:29 2010
+++ E:/UV-L00329342/Laboral/Sites/htdocs-khub/sites/default/modules/contributions/modules/millennium/millennium.module	Mon Jan 25 10:26:15 2010
@@ -88,513 +88,512 @@
     'other_number' => t('Other number'),
   );
 
-  $_key_to_name = array(
-    'lang' => array(
-      'aar' => t('Afar', null, 'en'),
-      'abk' => t('Abkhaz', null, 'en'),
-      'ace' => t('Achinese', null, 'en'),
-      'ach' => t('Acoli', null, 'en'),
-      'ada' => t('Adangme', null, 'en'),
-      'ady' => t('Adygei', null, 'en'),
-      'afa' => t('Afroasiatic', null, 'en'),
-      'afh' => t('Afrihili', null, 'en'),
-      'afr' => t('Afrikaans', null, 'en'),
-      'ain' => t('Ainu', null, 'en'),
-      'aka' => t('Akan', null, 'en'),
-      'akk' => t('Akkadian', null, 'en'),
-      'alb' => t('Albanian', null, 'en'),
-      'ale' => t('Aleut', null, 'en'),
-      'alg' => t('Algonquian', null, 'en'),
-      'alt' => t('Altai', null, 'en'),
-      'amh' => t('Amharic', null, 'en'),
-      'ang' => t('English, Old', null, 'en'),
-      'anp' => t('Angika', null, 'en'),
-      'apa' => t('Apache languages', null, 'en'),
-      'ara' => t('Arabic', null, 'en'),
-      'arc' => t('Aramaic', null, 'en'),
-      'arg' => t('Aragonese Spanish', null, 'en'),
-      'arm' => t('Armenian', null, 'en'),
-      'arn' => t('Mapuche', null, 'en'),
-      'arp' => t('Arapaho', null, 'en'),
-      'art' => t('Artificial', null, 'en'),
-      'arw' => t('Arawak', null, 'en'),
-      'asm' => t('Assamese', null, 'en'),
-      'ast' => t('Bable', null, 'en'),
-      'ath' => t('Athapascan', null, 'en'),
-      'aus' => t('Australian languages', null, 'en'),
-      'ava' => t('Avaric', null, 'en'),
-      'ave' => t('Avestan', null, 'en'),
-      'awa' => t('Awadhi', null, 'en'),
-      'aym' => t('Aymara', null, 'en'),
-      'aze' => t('Azerbaijani', null, 'en'),
-      'bad' => t('Banda languages', null, 'en'),
-      'bai' => t('Bamileke languages', null, 'en'),
-      'bak' => t('Bashkir', null, 'en'),
-      'bal' => t('Baluchi', null, 'en'),
-      'bam' => t('Bambara', null, 'en'),
-      'ban' => t('Balinese', null, 'en'),
-      'baq' => t('Basque', null, 'en'),
-      'bas' => t('Basa', null, 'en'),
-      'bat' => t('Baltic', null, 'en'),
-      'bej' => t('Beja', null, 'en'),
-      'bel' => t('Belarusian', null, 'en'),
-      'bem' => t('Bemba', null, 'en'),
-      'ben' => t('Bengali', null, 'en'),
-      'ber' => t('Berber', null, 'en'),
-      'bho' => t('Bhojpuri', null, 'en'),
-      'bih' => t('Bihari', null, 'en'),
-      'bik' => t('Bikol', null, 'en'),
-      'bin' => t('Edo', null, 'en'),
-      'bis' => t('Bislama', null, 'en'),
-      'bla' => t('Siksika', null, 'en'),
-      'bnt' => t('Bantu', null, 'en'),
-      'bos' => t('Bosnian', null, 'en'),
-      'bra' => t('Braj', null, 'en'),
-      'bre' => t('Breton', null, 'en'),
-      'btk' => t('Batak', null, 'en'),
-      'bua' => t('Buriat', null, 'en'),
-      'bug' => t('Bugis', null, 'en'),
-      'bul' => t('Bulgarian', null, 'en'),
-      'bur' => t('Burmese', null, 'en'),
-      'byn' => t('Bilin', null, 'en'),
-      'cad' => t('Caddo', null, 'en'),
-      'cai' => t('Central American Indian', null, 'en'),
-      'car' => t('Carib', null, 'en'),
-      'cat' => t('Catalan', null, 'en'),
-      'cau' => t('Caucasian', null, 'en'),
-      'ceb' => t('Cebuano', null, 'en'),
-      'cel' => t('Celtic', null, 'en'),
-      'cha' => t('Chamorro', null, 'en'),
-      'chb' => t('Chibcha', null, 'en'),
-      'che' => t('Chechen', null, 'en'),
-      'chg' => t('Chagatai', null, 'en'),
-      'chi' => t('Chinese', null, 'en'),
-      'chk' => t('Chuukese', null, 'en'),
-      'chm' => t('Mari', null, 'en'),
-      'chn' => t('Chinook jargon', null, 'en'),
-      'cho' => t('Choctaw', null, 'en'),
-      'chp' => t('Chipewyan', null, 'en'),
-      'chr' => t('Cherokee', null, 'en'),
-      'chu' => t('Church Slavic', null, 'en'),
-      'chv' => t('Chuvash', null, 'en'),
-      'chy' => t('Cheyenne', null, 'en'),
-      'cmc' => t('Chamic languages', null, 'en'),
-      'cop' => t('Coptic', null, 'en'),
-      'cor' => t('Cornish', null, 'en'),
-      'cos' => t('Corsican', null, 'en'),
-      'cpe' => t('Creoles and Pidgins, English-based', null, 'en'),
-      'cpf' => t('Creoles and Pidgins, French-based', null, 'en'),
-      'cpp' => t('Creoles and Pidgins, Portuguese-based', null, 'en'),
-      'cre' => t('Cree', null, 'en'),
-      'crh' => t('Crimean Tatar', null, 'en'),
-      'crp' => t('Creoles and Pidgins', null, 'en'),
-      'csb' => t('Kashubian', null, 'en'),
-      'cus' => t('Cushitic', null, 'en'),
-      'cze' => t('Czech', null, 'en'),
-      'dak' => t('Dakota', null, 'en'),
-      'dan' => t('Danish', null, 'en'),
-      'dar' => t('Dargwa', null, 'en'),
-      'day' => t('Dayak', null, 'en'),
-      'del' => t('Delaware', null, 'en'),
-      'den' => t('Slave', null, 'en'),
-      'dgr' => t('Dogrib', null, 'en'),
-      'din' => t('Dinka', null, 'en'),
-      'div' => t('Divehi', null, 'en'),
-      'doi' => t('Dogri', null, 'en'),
-      'dra' => t('Dravidian', null, 'en'),
-      'dsb' => t('Lower Sorbian', null, 'en'),
-      'dua' => t('Duala', null, 'en'),
-      'dum' => t('Dutch, Middle', null, 'en'),
-      'dut' => t('Dutch', null, 'en'),
-      'dyu' => t('Dyula', null, 'en'),
-      'dzo' => t('Dzongkha', null, 'en'),
-      'efi' => t('Efik', null, 'en'),
-      'egy' => t('Egyptian', null, 'en'),
-      'eka' => t('Ekajuk', null, 'en'),
-      'elx' => t('Elamite', null, 'en'),
-      'eng' => t('English', null, 'en'),
-      'enm' => t('English, Middle', null, 'en'),
-      'epo' => t('Esperanto', null, 'en'),
-      'est' => t('Estonian', null, 'en'),
-      'ewe' => t('Ewe', null, 'en'),
-      'ewo' => t('Ewondo', null, 'en'),
-      'fan' => t('Fang', null, 'en'),
-      'fao' => t('Faroese', null, 'en'),
-      'fat' => t('Fanti', null, 'en'),
-      'fij' => t('Fijian', null, 'en'),
-      'fil' => t('Filipino', null, 'en'),
-      'fin' => t('Finnish', null, 'en'),
-      'fiu' => t('Finno-Ugrian', null, 'en'),
-      'fon' => t('Fon', null, 'en'),
-      'fre' => t('French', null, 'en'),
-      'frm' => t('French, Middle', null, 'en'),
-      'fro' => t('French, Old', null, 'en'),
-      'frr' => t('North Frisian', null, 'en'),
-      'frs' => t('East Frisian', null, 'en'),
-      'fry' => t('Frisian', null, 'en'),
-      'ful' => t('Fula', null, 'en'),
-      'fur' => t('Friulian', null, 'en'),
-      'gaa' => t('Gã', null, 'en'),
-      'gay' => t('Gayo', null, 'en'),
-      'gba' => t('Gbaya', null, 'en'),
-      'gem' => t('Germanic', null, 'en'),
-      'geo' => t('Georgian', null, 'en'),
-      'ger' => t('German', null, 'en'),
-      'gez' => t('Ethiopic', null, 'en'),
-      'gil' => t('Gilbertese', null, 'en'),
-      'gla' => t('Scottish Gaelic', null, 'en'),
-      'gle' => t('Irish', null, 'en'),
-      'glg' => t('Galician', null, 'en'),
-      'glv' => t('Manx', null, 'en'),
-      'gmh' => t('German, Middle High', null, 'en'),
-      'goh' => t('German, Old High', null, 'en'),
-      'gon' => t('Gondi', null, 'en'),
-      'gor' => t('Gorontalo', null, 'en'),
-      'got' => t('Gothic', null, 'en'),
-      'grb' => t('Grebo', null, 'en'),
-      'grc' => t('Greek, Ancient', null, 'en'),
-      'gre' => t('Greek, Modern', null, 'en'),
-      'grn' => t('Guarani', null, 'en'),
-      'gsw' => t('Swiss German', null, 'en'),
-      'guj' => t('Gujarati', null, 'en'),
-      'gwi' => t("Gwich'in", null, 'en'),
-      'hai' => t('Haida', null, 'en'),
-      'hat' => t('Haitian French Creole', null, 'en'),
-      'hau' => t('Hausa', null, 'en'),
-      'haw' => t('Hawaiian', null, 'en'),
-      'heb' => t('Hebrew', null, 'en'),
-      'her' => t('Herero', null, 'en'),
-      'hil' => t('Hiligaynon', null, 'en'),
-      'him' => t('Himachali', null, 'en'),
-      'hin' => t('Hindi', null, 'en'),
-      'hit' => t('Hittite', null, 'en'),
-      'hmn' => t('Hmong', null, 'en'),
-      'hmo' => t('Hiri Motu', null, 'en'),
-      'hsb' => t('Upper Sorbian', null, 'en'),
-      'hun' => t('Hungarian', null, 'en'),
-      'hup' => t('Hupa', null, 'en'),
-      'iba' => t('Iban', null, 'en'),
-      'ibo' => t('Igbo', null, 'en'),
-      'ice' => t('Icelandic', null, 'en'),
-      'ido' => t('Ido', null, 'en'),
-      'iii' => t('Sichuan Yi', null, 'en'),
-      'ijo' => t('Ijo', null, 'en'),
-      'iku' => t('Inuktitut', null, 'en'),
-      'ile' => t('Interlingue', null, 'en'),
-      'ilo' => t('Iloko', null, 'en'),
-      'ina' => t('Interlingua', null, 'en'),
-      'inc' => t('Indic', null, 'en'),
-      'ind' => t('Indonesian', null, 'en'),
-      'ine' => t('Indo-European', null, 'en'),
-      'inh' => t('Ingush', null, 'en'),
-      'ipk' => t('Inupiaq', null, 'en'),
-      'ira' => t('Iranian', null, 'en'),
-      'iro' => t('Iroquoian', null, 'en'),
-      'ita' => t('Italian', null, 'en'),
-      'jav' => t('Javanese', null, 'en'),
-      'jbo' => t('Lojban', null, 'en'),
-      'jpn' => t('Japanese', null, 'en'),
-      'jpr' => t('Judeo-Persian', null, 'en'),
-      'jrb' => t('Judeo-Arabic', null, 'en'),
-      'kaa' => t('Kara-Kalpak', null, 'en'),
-      'kab' => t('Kabyle', null, 'en'),
-      'kac' => t('Kachin', null, 'en'),
-      'kal' => t('Kalâtdlisut', null, 'en'),
-      'kam' => t('Kamba', null, 'en'),
-      'kan' => t('Kannada', null, 'en'),
-      'kar' => t('Karen languages', null, 'en'),
-      'kas' => t('Kashmiri', null, 'en'),
-      'kau' => t('Kanuri', null, 'en'),
-      'kaw' => t('Kawi', null, 'en'),
-      'kaz' => t('Kazakh', null, 'en'),
-      'kbd' => t('Kabardian', null, 'en'),
-      'kha' => t('Khasi', null, 'en'),
-      'khi' => t('Khoisan', null, 'en'),
-      'khm' => t('Khmer', null, 'en'),
-      'kho' => t('Khotanese', null, 'en'),
-      'kik' => t('Kikuyu', null, 'en'),
-      'kin' => t('Kinyarwanda', null, 'en'),
-      'kir' => t('Kyrgyz', null, 'en'),
-      'kmb' => t('Kimbundu', null, 'en'),
-      'kok' => t('Konkani', null, 'en'),
-      'kom' => t('Komi', null, 'en'),
-      'kon' => t('Kongo', null, 'en'),
-      'kor' => t('Korean', null, 'en'),
-      'kos' => t('Kusaie', null, 'en'),
-      'kpe' => t('Kpelle', null, 'en'),
-      'krc' => t('Karachay-Balkar', null, 'en'),
-      'krl' => t('Karelian', null, 'en'),
-      'kro' => t('Kru', null, 'en'),
-      'kru' => t('Kurukh', null, 'en'),
-      'kua' => t('Kuanyama', null, 'en'),
-      'kum' => t('Kumyk', null, 'en'),
-      'kur' => t('Kurdish', null, 'en'),
-      'kut' => t('Kootenai', null, 'en'),
-      'lad' => t('Ladino', null, 'en'),
-      'lah' => t('Lahnd?', null, 'en'),
-      'lam' => t('Lamba', null, 'en'),
-      'lao' => t('Lao', null, 'en'),
-      'lat' => t('Latin', null, 'en'),
-      'lav' => t('Latvian', null, 'en'),
-      'lez' => t('Lezgian', null, 'en'),
-      'lim' => t('Limburgish', null, 'en'),
-      'lin' => t('Lingala', null, 'en'),
-      'lit' => t('Lithuanian', null, 'en'),
-      'lol' => t('Mongo-Nkundu', null, 'en'),
-      'loz' => t('Lozi', null, 'en'),
-      'ltz' => t('Luxembourgish', null, 'en'),
-      'lua' => t('Luba-Lulua', null, 'en'),
-      'lub' => t('Luba-Katanga', null, 'en'),
-      'lug' => t('Ganda', null, 'en'),
-      'lui' => t('Luiseño', null, 'en'),
-      'lun' => t('Lunda', null, 'en'),
-      'luo' => t('Luo', null, 'en'),
-      'lus' => t('Lushai', null, 'en'),
-      'mac' => t('Macedonian', null, 'en'),
-      'mad' => t('Madurese', null, 'en'),
-      'mag' => t('Magahi', null, 'en'),
-      'mah' => t('Marshallese', null, 'en'),
-      'mai' => t('Maithili', null, 'en'),
-      'mak' => t('Makasar', null, 'en'),
-      'mal' => t('Malayalam', null, 'en'),
-      'man' => t('Mandingo', null, 'en'),
-      'mao' => t('Maori', null, 'en'),
-      'map' => t('Austronesian', null, 'en'),
-      'mar' => t('Marathi', null, 'en'),
-      'mas' => t('Masai', null, 'en'),
-      'may' => t('Malay', null, 'en'),
-      'mdf' => t('Moksha', null, 'en'),
-      'mdr' => t('Mandar', null, 'en'),
-      'men' => t('Mende', null, 'en'),
-      'mga' => t('Irish, Middle', null, 'en'),
-      'mic' => t('Micmac', null, 'en'),
-      'min' => t('Minangkabau', null, 'en'),
-      'mis' => t('Miscellaneous languages', null, 'en'),
-      'mkh' => t('Mon-Khmer', null, 'en'),
-      'mlg' => t('Malagasy', null, 'en'),
-      'mlt' => t('Maltese', null, 'en'),
-      'mnc' => t('Manchu', null, 'en'),
-      'mni' => t('Manipuri', null, 'en'),
-      'mno' => t('Manobo languages', null, 'en'),
-      'moh' => t('Mohawk', null, 'en'),
-      // 'mol' => t('Moldavian', null, 'en'),  #Removed as per http://catalogablog.blogspot.com/2009/01/changes-to-marc-code-list-for-languages.html (see 'rum', null, 'en')
-      'mon' => t('Mongolian', null, 'en'),
-      'mos' => t('Mooré', null, 'en'),
-      'mul' => t('Multiple languages', null, 'en'),
-      'mun' => t('Munda', null, 'en'),
-      'mus' => t('Creek', null, 'en'),
-      'mwl' => t('Mirandese', null, 'en'),
-      'mwr' => t('Marwari', null, 'en'),
-      'myn' => t('Mayan languages', null, 'en'),
-      'myv' => t('Erzya', null, 'en'),
-      'nah' => t('Nahuatl', null, 'en'),
-      'nai' => t('North American Indian', null, 'en'),
-      'nap' => t('Neapolitan Italian', null, 'en'),
-      'nau' => t('Nauru', null, 'en'),
-      'nav' => t('Navajo', null, 'en'),
-      'nbl' => t('Ndebele', null, 'en'),
-      'nde' => t('Ndebele', null, 'en'),
-      'ndo' => t('Ndonga', null, 'en'),
-      'nds' => t('Low German', null, 'en'),
-      'nep' => t('Nepali', null, 'en'),
-      'new' => t('Newari', null, 'en'),
-      'nia' => t('Nias', null, 'en'),
-      'nic' => t('Niger-Kordofanian', null, 'en'),
-      'niu' => t('Niuean', null, 'en'),
-      'nno' => t('Norwegian', null, 'en'),
-      'nob' => t('Norwegian', null, 'en'),
-      'nog' => t('Nogai', null, 'en'),
-      'non' => t('Old Norse', null, 'en'),
-      'nor' => t('Norwegian', null, 'en'),
-      'nqo' => t("N'Ko", null, 'en'),
-      'nso' => t('Northern Sotho', null, 'en'),
-      'nub' => t('Nubian languages', null, 'en'),
-      'nwc' => t('Newari, Old', null, 'en'),
-      'nya' => t('Nyanja', null, 'en'),
-      'nym' => t('Nyamwezi', null, 'en'),
-      'nyn' => t('Nyankole', null, 'en'),
-      'nyo' => t('Nyoro', null, 'en'),
-      'nzi' => t('Nzima', null, 'en'),
-      'oci' => t('Occitan', null, 'en'),
-      'oji' => t('Ojibwa', null, 'en'),
-      'ori' => t('Oriya', null, 'en'),
-      'orm' => t('Oromo', null, 'en'),
-      'osa' => t('Osage', null, 'en'),
-      'oss' => t('Ossetic', null, 'en'),
-      'ota' => t('Turkish, Ottoman', null, 'en'),
-      'oto' => t('Otomian languages', null, 'en'),
-      'paa' => t('Papuan', null, 'en'),
-      'pag' => t('Pangasinan', null, 'en'),
-      'pal' => t('Pahlavi', null, 'en'),
-      'pam' => t('Pampanga', null, 'en'),
-      'pan' => t('Panjabi', null, 'en'),
-      'pap' => t('Papiamento', null, 'en'),
-      'pau' => t('Palauan', null, 'en'),
-      'peo' => t('Old Persian', null, 'en'),
-      'per' => t('Persian', null, 'en'),
-      'phi' => t('Philippine', null, 'en'),
-      'phn' => t('Phoenician', null, 'en'),
-      'pli' => t('Pali', null, 'en'),
-      'pol' => t('Polish', null, 'en'),
-      'pon' => t('Ponape', null, 'en'),
-      'por' => t('Portuguese', null, 'en'),
-      'pra' => t('Prakrit languages', null, 'en'),
-      'pro' => t('Provençal', null, 'en'),
-      'pus' => t('Pushto', null, 'en'),
-      'que' => t('Quechua', null, 'en'),
-      'raj' => t('Rajasthani', null, 'en'),
-      'rap' => t('Rapanui', null, 'en'),
-      'rar' => t('Rarotongan', null, 'en'),
-      'roa' => t('Romance', null, 'en'),
-      'roh' => t('Raeto-Romance', null, 'en'),
-      'rom' => t('Romani', null, 'en'),
-      'rum' => t('Romanian', null, 'en'),
-      'run' => t('Rundi', null, 'en'),
-      'rup' => t('Aromanian', null, 'en'),
-      'rus' => t('Russian', null, 'en'),
-      'sad' => t('Sandawe', null, 'en'),
-      'sag' => t('Sango', null, 'en'),
-      'sah' => t('Yakut', null, 'en'),
-      'sai' => t('South American Indian', null, 'en'),
-      'sal' => t('Salishan languages', null, 'en'),
-      'sam' => t('Samaritan Aramaic', null, 'en'),
-      'san' => t('Sanskrit', null, 'en'),
-      'sas' => t('Sasak', null, 'en'),
-      'sat' => t('Santali', null, 'en'),
-      'scc' => t('Serbian', null, 'en'),
-      'scn' => t('Sicilian Italian', null, 'en'),
-      'sco' => t('Scots', null, 'en'),
-      'scr' => t('Croatian', null, 'en'),
-      'sel' => t('Selkup', null, 'en'),
-      'sem' => t('Semitic', null, 'en'),
-      'sga' => t('Irish, Old', null, 'en'),
-      'sgn' => t('Sign languages', null, 'en'),
-      'shn' => t('Shan', null, 'en'),
-      'sid' => t('Sidamo', null, 'en'),
-      'sin' => t('Sinhalese', null, 'en'),
-      'sio' => t('Siouan', null, 'en'),
-      'sit' => t('Sino-Tibetan', null, 'en'),
-      'sla' => t('Slavic', null, 'en'),
-      'slo' => t('Slovak', null, 'en'),
-      'slv' => t('Slovenian', null, 'en'),
-      'sma' => t('Southern Sami', null, 'en'),
-      'sme' => t('Northern Sami', null, 'en'),
-      'smi' => t('Sami', null, 'en'),
-      'smj' => t('Lule Sami', null, 'en'),
-      'smn' => t('Inari Sami', null, 'en'),
-      'smo' => t('Samoan', null, 'en'),
-      'sms' => t('Skolt Sami', null, 'en'),
-      'sna' => t('Shona', null, 'en'),
-      'snd' => t('Sindhi', null, 'en'),
-      'snk' => t('Soninke', null, 'en'),
-      'sog' => t('Sogdian', null, 'en'),
-      'som' => t('Somali', null, 'en'),
-      'son' => t('Songhai', null, 'en'),
-      'sot' => t('Sotho', null, 'en'),
-      'spa' => t('Spanish', null, 'en'),
-      'srd' => t('Sardinian', null, 'en'),
-      'srn' => t('Sranan', null, 'en'),
-      'srr' => t('Serer', null, 'en'),
-      'ssa' => t('Nilo-Saharan', null, 'en'),
-      'ssw' => t('Swazi', null, 'en'),
-      'suk' => t('Sukuma', null, 'en'),
-      'sun' => t('Sundanese', null, 'en'),
-      'sus' => t('Susu', null, 'en'),
-      'sux' => t('Sumerian', null, 'en'),
-      'swa' => t('Swahili', null, 'en'),
-      'swe' => t('Swedish', null, 'en'),
-      'syc' => t('Syriac', null, 'en'),
-      'syr' => t('Syriac, Modern', null, 'en'),
-      'tah' => t('Tahitian', null, 'en'),
-      'tai' => t('Tai', null, 'en'),
-      'tam' => t('Tamil', null, 'en'),
-      'tat' => t('Tatar', null, 'en'),
-      'tel' => t('Telugu', null, 'en'),
-      'tem' => t('Temne', null, 'en'),
-      'ter' => t('Terena', null, 'en'),
-      'tet' => t('Tetum', null, 'en'),
-      'tgk' => t('Tajik', null, 'en'),
-      'tgl' => t('Tagalog', null, 'en'),
-      'tha' => t('Thai', null, 'en'),
-      'tib' => t('Tibetan', null, 'en'),
-      'tig' => t('Tigré', null, 'en'),
-      'tir' => t('Tigrinya', null, 'en'),
-      'tiv' => t('Tiv', null, 'en'),
-      'tkl' => t('Tokelauan', null, 'en'),
-      'tlh' => t('Klingon', null, 'en'),
-      'tli' => t('Tlingit', null, 'en'),
-      'tmh' => t('Tamashek', null, 'en'),
-      'tog' => t('Tonga', null, 'en'),
-      'ton' => t('Tongan', null, 'en'),
-      'tpi' => t('Tok Pisin', null, 'en'),
-      'tsi' => t('Tsimshian', null, 'en'),
-      'tsn' => t('Tswana', null, 'en'),
-      'tso' => t('Tsonga', null, 'en'),
-      'tuk' => t('Turkmen', null, 'en'),
-      'tum' => t('Tumbuka', null, 'en'),
-      'tup' => t('Tupi languages', null, 'en'),
-      'tur' => t('Turkish', null, 'en'),
-      'tut' => t('Altaic', null, 'en'),
-      'tvl' => t('Tuvaluan', null, 'en'),
-      'twi' => t('Twi', null, 'en'),
-      'tyv' => t('Tuvinian', null, 'en'),
-      'udm' => t('Udmurt', null, 'en'),
-      'uga' => t('Ugaritic', null, 'en'),
-      'uig' => t('Uighur', null, 'en'),
-      'ukr' => t('Ukrainian', null, 'en'),
-      'umb' => t('Umbundu', null, 'en'),
-      'und' => t('Undetermined', null, 'en'),
-      'urd' => t('Urdu', null, 'en'),
-      'uzb' => t('Uzbek', null, 'en'),
-      'vai' => t('Vai', null, 'en'),
-      'ven' => t('Venda', null, 'en'),
-      'vie' => t('Vietnamese', null, 'en'),
-      'vol' => t('Volapük', null, 'en'),
-      'vot' => t('Votic', null, 'en'),
-      'wak' => t('Wakashan languages', null, 'en'),
-      'wal' => t('Wolayta', null, 'en'),
-      'war' => t('Waray', null, 'en'),
-      'was' => t('Washo', null, 'en'),
-      'wel' => t('Welsh', null, 'en'),
-      'wen' => t('Sorbian', null, 'en'),
-      'wln' => t('Walloon', null, 'en'),
-      'wol' => t('Wolof', null, 'en'),
-      'xal' => t('Oirat', null, 'en'),
-      'xho' => t('Xhosa', null, 'en'),
-      'yao' => t('Yao', null, 'en'),
-      'yap' => t('Yapese', null, 'en'),
-      'yid' => t('Yiddish', null, 'en'),
-      'yor' => t('Yoruba', null, 'en'),
-      'ypk' => t('Yupik languages', null, 'en'),
-      'zap' => t('Zapotec', null, 'en'),
-      'zbl' => t('Blissymbolics', null, 'en'),
-      'zen' => t('Zenaga', null, 'en'),
-      'zha' => t('Zhuang', null, 'en'),
-      'znd' => t('Zande languages', null, 'en'),
-      'zul' => t('Zulu', null, 'en'),
-      'zun' => t('Zuni', null, 'en'),
-      'zxx' => t('No linguistic content', null, 'en'),
-      'zza' => t('Zaza', null, 'en')
-
-    ), 'type' => array(
-
-      'object' => t('Object', null, 'en'),
-      'photo' => t('Photo', null, 'en'),
-      'projected' => t('Projected medium', null, 'en'),
-      'kit' => t('Kit', null, 'en'),
-      'map' => t('Map', null, 'en'),
-      'file' => t('Computer file', null, 'en'),
-      'sheet' => t('Sheet music', null, 'en'),
-      'periodical' => t('Periodical', null, 'en'),
-      'book' => t('Book', null, 'en'),
-      'sound' => t('Sound recording', null, 'en'),
-      'music' => t('Music', null, 'en'),
-      'manuscript' => t('Manuscript', null, 'en'),
-      'dvd' => t('DVD', null, 'en'),
-      'vhs' => t('VHS', null, 'en'),
-      'cassette' => t('Cassette', null, 'en'),
-      'cd' => t('CD', null, 'en')
-    ));
+  $_key_to_name['lang'] = array(
+    'aar' => t('Afar', null, 'en'),
+    'abk' => t('Abkhaz', null, 'en'),
+    'ace' => t('Achinese', null, 'en'),
+    'ach' => t('Acoli', null, 'en'),
+    'ada' => t('Adangme', null, 'en'),
+    'ady' => t('Adygei', null, 'en'),
+    'afa' => t('Afroasiatic', null, 'en'),
+    'afh' => t('Afrihili', null, 'en'),
+    'afr' => t('Afrikaans', null, 'en'),
+    'ain' => t('Ainu', null, 'en'),
+    'aka' => t('Akan', null, 'en'),
+    'akk' => t('Akkadian', null, 'en'),
+    'alb' => t('Albanian', null, 'en'),
+    'ale' => t('Aleut', null, 'en'),
+    'alg' => t('Algonquian', null, 'en'),
+    'alt' => t('Altai', null, 'en'),
+    'amh' => t('Amharic', null, 'en'),
+    'ang' => t('English, Old', null, 'en'),
+    'anp' => t('Angika', null, 'en'),
+    'apa' => t('Apache languages', null, 'en'),
+    'ara' => t('Arabic', null, 'en'),
+    'arc' => t('Aramaic', null, 'en'),
+    'arg' => t('Aragonese Spanish', null, 'en'),
+    'arm' => t('Armenian', null, 'en'),
+    'arn' => t('Mapuche', null, 'en'),
+    'arp' => t('Arapaho', null, 'en'),
+    'art' => t('Artificial', null, 'en'),
+    'arw' => t('Arawak', null, 'en'),
+    'asm' => t('Assamese', null, 'en'),
+    'ast' => t('Bable', null, 'en'),
+    'ath' => t('Athapascan', null, 'en'),
+    'aus' => t('Australian languages', null, 'en'),
+    'ava' => t('Avaric', null, 'en'),
+    'ave' => t('Avestan', null, 'en'),
+    'awa' => t('Awadhi', null, 'en'),
+    'aym' => t('Aymara', null, 'en'),
+    'aze' => t('Azerbaijani', null, 'en'),
+    'bad' => t('Banda languages', null, 'en'),
+    'bai' => t('Bamileke languages', null, 'en'),
+    'bak' => t('Bashkir', null, 'en'),
+    'bal' => t('Baluchi', null, 'en'),
+    'bam' => t('Bambara', null, 'en'),
+    'ban' => t('Balinese', null, 'en'),
+    'baq' => t('Basque', null, 'en'),
+    'bas' => t('Basa', null, 'en'),
+    'bat' => t('Baltic', null, 'en'),
+    'bej' => t('Beja', null, 'en'),
+    'bel' => t('Belarusian', null, 'en'),
+    'bem' => t('Bemba', null, 'en'),
+    'ben' => t('Bengali', null, 'en'),
+    'ber' => t('Berber', null, 'en'),
+    'bho' => t('Bhojpuri', null, 'en'),
+    'bih' => t('Bihari', null, 'en'),
+    'bik' => t('Bikol', null, 'en'),
+    'bin' => t('Edo', null, 'en'),
+    'bis' => t('Bislama', null, 'en'),
+    'bla' => t('Siksika', null, 'en'),
+    'bnt' => t('Bantu', null, 'en'),
+    'bos' => t('Bosnian', null, 'en'),
+    'bra' => t('Braj', null, 'en'),
+    'bre' => t('Breton', null, 'en'),
+    'btk' => t('Batak', null, 'en'),
+    'bua' => t('Buriat', null, 'en'),
+    'bug' => t('Bugis', null, 'en'),
+    'bul' => t('Bulgarian', null, 'en'),
+    'bur' => t('Burmese', null, 'en'),
+    'byn' => t('Bilin', null, 'en'),
+    'cad' => t('Caddo', null, 'en'),
+    'cai' => t('Central American Indian', null, 'en'),
+    'car' => t('Carib', null, 'en'),
+    'cat' => t('Catalan', null, 'en'),
+    'cau' => t('Caucasian', null, 'en'),
+    'ceb' => t('Cebuano', null, 'en'),
+    'cel' => t('Celtic', null, 'en'),
+    'cha' => t('Chamorro', null, 'en'),
+    'chb' => t('Chibcha', null, 'en'),
+    'che' => t('Chechen', null, 'en'),
+    'chg' => t('Chagatai', null, 'en'),
+    'chi' => t('Chinese', null, 'en'),
+    'chk' => t('Chuukese', null, 'en'),
+    'chm' => t('Mari', null, 'en'),
+    'chn' => t('Chinook jargon', null, 'en'),
+    'cho' => t('Choctaw', null, 'en'),
+    'chp' => t('Chipewyan', null, 'en'),
+    'chr' => t('Cherokee', null, 'en'),
+    'chu' => t('Church Slavic', null, 'en'),
+    'chv' => t('Chuvash', null, 'en'),
+    'chy' => t('Cheyenne', null, 'en'),
+    'cmc' => t('Chamic languages', null, 'en'),
+    'cop' => t('Coptic', null, 'en'),
+    'cor' => t('Cornish', null, 'en'),
+    'cos' => t('Corsican', null, 'en'),
+    'cpe' => t('Creoles and Pidgins, English-based', null, 'en'),
+    'cpf' => t('Creoles and Pidgins, French-based', null, 'en'),
+    'cpp' => t('Creoles and Pidgins, Portuguese-based', null, 'en'),
+    'cre' => t('Cree', null, 'en'),
+    'crh' => t('Crimean Tatar', null, 'en'),
+    'crp' => t('Creoles and Pidgins', null, 'en'),
+    'csb' => t('Kashubian', null, 'en'),
+    'cus' => t('Cushitic', null, 'en'),
+    'cze' => t('Czech', null, 'en'),
+    'dak' => t('Dakota', null, 'en'),
+    'dan' => t('Danish', null, 'en'),
+    'dar' => t('Dargwa', null, 'en'),
+    'day' => t('Dayak', null, 'en'),
+    'del' => t('Delaware', null, 'en'),
+    'den' => t('Slave', null, 'en'),
+    'dgr' => t('Dogrib', null, 'en'),
+    'din' => t('Dinka', null, 'en'),
+    'div' => t('Divehi', null, 'en'),
+    'doi' => t('Dogri', null, 'en'),
+    'dra' => t('Dravidian', null, 'en'),
+    'dsb' => t('Lower Sorbian', null, 'en'),
+    'dua' => t('Duala', null, 'en'),
+    'dum' => t('Dutch, Middle', null, 'en'),
+    'dut' => t('Dutch', null, 'en'),
+    'dyu' => t('Dyula', null, 'en'),
+    'dzo' => t('Dzongkha', null, 'en'),
+    'efi' => t('Efik', null, 'en'),
+    'egy' => t('Egyptian', null, 'en'),
+    'eka' => t('Ekajuk', null, 'en'),
+    'elx' => t('Elamite', null, 'en'),
+    'eng' => t('English', null, 'en'),
+    'enm' => t('English, Middle', null, 'en'),
+    'epo' => t('Esperanto', null, 'en'),
+    'est' => t('Estonian', null, 'en'),
+    'ewe' => t('Ewe', null, 'en'),
+    'ewo' => t('Ewondo', null, 'en'),
+    'fan' => t('Fang', null, 'en'),
+    'fao' => t('Faroese', null, 'en'),
+    'fat' => t('Fanti', null, 'en'),
+    'fij' => t('Fijian', null, 'en'),
+    'fil' => t('Filipino', null, 'en'),
+    'fin' => t('Finnish', null, 'en'),
+    'fiu' => t('Finno-Ugrian', null, 'en'),
+    'fon' => t('Fon', null, 'en'),
+    'fre' => t('French', null, 'en'),
+    'frm' => t('French, Middle', null, 'en'),
+    'fro' => t('French, Old', null, 'en'),
+    'frr' => t('North Frisian', null, 'en'),
+    'frs' => t('East Frisian', null, 'en'),
+    'fry' => t('Frisian', null, 'en'),
+    'ful' => t('Fula', null, 'en'),
+    'fur' => t('Friulian', null, 'en'),
+    'gaa' => t('Gã', null, 'en'),
+    'gay' => t('Gayo', null, 'en'),
+    'gba' => t('Gbaya', null, 'en'),
+    'gem' => t('Germanic', null, 'en'),
+    'geo' => t('Georgian', null, 'en'),
+    'ger' => t('German', null, 'en'),
+    'gez' => t('Ethiopic', null, 'en'),
+    'gil' => t('Gilbertese', null, 'en'),
+    'gla' => t('Scottish Gaelic', null, 'en'),
+    'gle' => t('Irish', null, 'en'),
+    'glg' => t('Galician', null, 'en'),
+    'glv' => t('Manx', null, 'en'),
+    'gmh' => t('German, Middle High', null, 'en'),
+    'goh' => t('German, Old High', null, 'en'),
+    'gon' => t('Gondi', null, 'en'),
+    'gor' => t('Gorontalo', null, 'en'),
+    'got' => t('Gothic', null, 'en'),
+    'grb' => t('Grebo', null, 'en'),
+    'grc' => t('Greek, Ancient', null, 'en'),
+    'gre' => t('Greek, Modern', null, 'en'),
+    'grn' => t('Guarani', null, 'en'),
+    'gsw' => t('Swiss German', null, 'en'),
+    'guj' => t('Gujarati', null, 'en'),
+    'gwi' => t("Gwich'in", null, 'en'),
+    'hai' => t('Haida', null, 'en'),
+    'hat' => t('Haitian French Creole', null, 'en'),
+    'hau' => t('Hausa', null, 'en'),
+    'haw' => t('Hawaiian', null, 'en'),
+    'heb' => t('Hebrew', null, 'en'),
+    'her' => t('Herero', null, 'en'),
+    'hil' => t('Hiligaynon', null, 'en'),
+    'him' => t('Himachali', null, 'en'),
+    'hin' => t('Hindi', null, 'en'),
+    'hit' => t('Hittite', null, 'en'),
+    'hmn' => t('Hmong', null, 'en'),
+    'hmo' => t('Hiri Motu', null, 'en'),
+    'hsb' => t('Upper Sorbian', null, 'en'),
+    'hun' => t('Hungarian', null, 'en'),
+    'hup' => t('Hupa', null, 'en'),
+    'iba' => t('Iban', null, 'en'),
+    'ibo' => t('Igbo', null, 'en'),
+    'ice' => t('Icelandic', null, 'en'),
+    'ido' => t('Ido', null, 'en'),
+    'iii' => t('Sichuan Yi', null, 'en'),
+    'ijo' => t('Ijo', null, 'en'),
+    'iku' => t('Inuktitut', null, 'en'),
+    'ile' => t('Interlingue', null, 'en'),
+    'ilo' => t('Iloko', null, 'en'),
+    'ina' => t('Interlingua', null, 'en'),
+    'inc' => t('Indic', null, 'en'),
+    'ind' => t('Indonesian', null, 'en'),
+    'ine' => t('Indo-European', null, 'en'),
+    'inh' => t('Ingush', null, 'en'),
+    'ipk' => t('Inupiaq', null, 'en'),
+    'ira' => t('Iranian', null, 'en'),
+    'iro' => t('Iroquoian', null, 'en'),
+    'ita' => t('Italian', null, 'en'),
+    'jav' => t('Javanese', null, 'en'),
+    'jbo' => t('Lojban', null, 'en'),
+    'jpn' => t('Japanese', null, 'en'),
+    'jpr' => t('Judeo-Persian', null, 'en'),
+    'jrb' => t('Judeo-Arabic', null, 'en'),
+    'kaa' => t('Kara-Kalpak', null, 'en'),
+    'kab' => t('Kabyle', null, 'en'),
+    'kac' => t('Kachin', null, 'en'),
+    'kal' => t('Kalâtdlisut', null, 'en'),
+    'kam' => t('Kamba', null, 'en'),
+    'kan' => t('Kannada', null, 'en'),
+    'kar' => t('Karen languages', null, 'en'),
+    'kas' => t('Kashmiri', null, 'en'),
+    'kau' => t('Kanuri', null, 'en'),
+    'kaw' => t('Kawi', null, 'en'),
+    'kaz' => t('Kazakh', null, 'en'),
+    'kbd' => t('Kabardian', null, 'en'),
+    'kha' => t('Khasi', null, 'en'),
+    'khi' => t('Khoisan', null, 'en'),
+    'khm' => t('Khmer', null, 'en'),
+    'kho' => t('Khotanese', null, 'en'),
+    'kik' => t('Kikuyu', null, 'en'),
+    'kin' => t('Kinyarwanda', null, 'en'),
+    'kir' => t('Kyrgyz', null, 'en'),
+    'kmb' => t('Kimbundu', null, 'en'),
+    'kok' => t('Konkani', null, 'en'),
+    'kom' => t('Komi', null, 'en'),
+    'kon' => t('Kongo', null, 'en'),
+    'kor' => t('Korean', null, 'en'),
+    'kos' => t('Kusaie', null, 'en'),
+    'kpe' => t('Kpelle', null, 'en'),
+    'krc' => t('Karachay-Balkar', null, 'en'),
+    'krl' => t('Karelian', null, 'en'),
+    'kro' => t('Kru', null, 'en'),
+    'kru' => t('Kurukh', null, 'en'),
+    'kua' => t('Kuanyama', null, 'en'),
+    'kum' => t('Kumyk', null, 'en'),
+    'kur' => t('Kurdish', null, 'en'),
+    'kut' => t('Kootenai', null, 'en'),
+    'lad' => t('Ladino', null, 'en'),
+    'lah' => t('Lahnda', null, 'en'),
+    'lam' => t('Lamba', null, 'en'),
+    'lao' => t('Lao', null, 'en'),
+    'lat' => t('Latin', null, 'en'),
+    'lav' => t('Latvian', null, 'en'),
+    'lez' => t('Lezgian', null, 'en'),
+    'lim' => t('Limburgish', null, 'en'),
+    'lin' => t('Lingala', null, 'en'),
+    'lit' => t('Lithuanian', null, 'en'),
+    'lol' => t('Mongo-Nkundu', null, 'en'),
+    'loz' => t('Lozi', null, 'en'),
+    'ltz' => t('Luxembourgish', null, 'en'),
+    'lua' => t('Luba-Lulua', null, 'en'),
+    'lub' => t('Luba-Katanga', null, 'en'),
+    'lug' => t('Ganda', null, 'en'),
+    'lui' => t('Luiseño', null, 'en'),
+    'lun' => t('Lunda', null, 'en'),
+    'luo' => t('Luo', null, 'en'),
+    'lus' => t('Lushai', null, 'en'),
+    'mac' => t('Macedonian', null, 'en'),
+    'mad' => t('Madurese', null, 'en'),
+    'mag' => t('Magahi', null, 'en'),
+    'mah' => t('Marshallese', null, 'en'),
+    'mai' => t('Maithili', null, 'en'),
+    'mak' => t('Makasar', null, 'en'),
+    'mal' => t('Malayalam', null, 'en'),
+    'man' => t('Mandingo', null, 'en'),
+    'mao' => t('Maori', null, 'en'),
+    'map' => t('Austronesian', null, 'en'),
+    'mar' => t('Marathi', null, 'en'),
+    'mas' => t('Masai', null, 'en'),
+    'may' => t('Malay', null, 'en'),
+    'mdf' => t('Moksha', null, 'en'),
+    'mdr' => t('Mandar', null, 'en'),
+    'men' => t('Mende', null, 'en'),
+    'mga' => t('Irish, Middle', null, 'en'),
+    'mic' => t('Micmac', null, 'en'),
+    'min' => t('Minangkabau', null, 'en'),
+    'mis' => t('Miscellaneous languages', null, 'en'),
+    'mkh' => t('Mon-Khmer', null, 'en'),
+    'mlg' => t('Malagasy', null, 'en'),
+    'mlt' => t('Maltese', null, 'en'),
+    'mnc' => t('Manchu', null, 'en'),
+    'mni' => t('Manipuri', null, 'en'),
+    'mno' => t('Manobo languages', null, 'en'),
+    'moh' => t('Mohawk', null, 'en'),
+    // 'mol' => t('Moldavian', null, 'en'),  #Removed as per http://catalogablog.blogspot.com/2009/01/changes-to-marc-code-list-for-languages.html (see 'rum', null, 'en')
+    'mon' => t('Mongolian', null, 'en'),
+    'mos' => t('Mooré', null, 'en'),
+    'mul' => t('Multiple languages', null, 'en'),
+    'mun' => t('Munda', null, 'en'),
+    'mus' => t('Creek', null, 'en'),
+    'mwl' => t('Mirandese', null, 'en'),
+    'mwr' => t('Marwari', null, 'en'),
+    'myn' => t('Mayan languages', null, 'en'),
+    'myv' => t('Erzya', null, 'en'),
+    'nah' => t('Nahuatl', null, 'en'),
+    'nai' => t('North American Indian', null, 'en'),
+    'nap' => t('Neapolitan Italian', null, 'en'),
+    'nau' => t('Nauru', null, 'en'),
+    'nav' => t('Navajo', null, 'en'),
+    'nbl' => t('Ndebele', null, 'en'),
+    'nde' => t('Ndebele', null, 'en'),
+    'ndo' => t('Ndonga', null, 'en'),
+    'nds' => t('Low German', null, 'en'),
+    'nep' => t('Nepali', null, 'en'),
+    'new' => t('Newari', null, 'en'),
+    'nia' => t('Nias', null, 'en'),
+    'nic' => t('Niger-Kordofanian', null, 'en'),
+    'niu' => t('Niuean', null, 'en'),
+    'nno' => t('Norwegian', null, 'en'),
+    'nob' => t('Norwegian', null, 'en'),
+    'nog' => t('Nogai', null, 'en'),
+    'non' => t('Old Norse', null, 'en'),
+    'nor' => t('Norwegian', null, 'en'),
+    'nqo' => t("N'Ko", null, 'en'),
+    'nso' => t('Northern Sotho', null, 'en'),
+    'nub' => t('Nubian languages', null, 'en'),
+    'nwc' => t('Newari, Old', null, 'en'),
+    'nya' => t('Nyanja', null, 'en'),
+    'nym' => t('Nyamwezi', null, 'en'),
+    'nyn' => t('Nyankole', null, 'en'),
+    'nyo' => t('Nyoro', null, 'en'),
+    'nzi' => t('Nzima', null, 'en'),
+    'oci' => t('Occitan', null, 'en'),
+    'oji' => t('Ojibwa', null, 'en'),
+    'ori' => t('Oriya', null, 'en'),
+    'orm' => t('Oromo', null, 'en'),
+    'osa' => t('Osage', null, 'en'),
+    'oss' => t('Ossetic', null, 'en'),
+    'ota' => t('Turkish, Ottoman', null, 'en'),
+    'oto' => t('Otomian languages', null, 'en'),
+    'paa' => t('Papuan', null, 'en'),
+    'pag' => t('Pangasinan', null, 'en'),
+    'pal' => t('Pahlavi', null, 'en'),
+    'pam' => t('Pampanga', null, 'en'),
+    'pan' => t('Panjabi', null, 'en'),
+    'pap' => t('Papiamento', null, 'en'),
+    'pau' => t('Palauan', null, 'en'),
+    'peo' => t('Old Persian', null, 'en'),
+    'per' => t('Persian', null, 'en'),
+    'phi' => t('Philippine', null, 'en'),
+    'phn' => t('Phoenician', null, 'en'),
+    'pli' => t('Pali', null, 'en'),
+    'pol' => t('Polish', null, 'en'),
+    'pon' => t('Ponape', null, 'en'),
+    'por' => t('Portuguese', null, 'en'),
+    'pra' => t('Prakrit languages', null, 'en'),
+    'pro' => t('Provençal', null, 'en'),
+    'pus' => t('Pushto', null, 'en'),
+    'que' => t('Quechua', null, 'en'),
+    'raj' => t('Rajasthani', null, 'en'),
+    'rap' => t('Rapanui', null, 'en'),
+    'rar' => t('Rarotongan', null, 'en'),
+    'roa' => t('Romance', null, 'en'),
+    'roh' => t('Raeto-Romance', null, 'en'),
+    'rom' => t('Romani', null, 'en'),
+    'rum' => t('Romanian', null, 'en'),
+    'run' => t('Rundi', null, 'en'),
+    'rup' => t('Aromanian', null, 'en'),
+    'rus' => t('Russian', null, 'en'),
+    'sad' => t('Sandawe', null, 'en'),
+    'sag' => t('Sango', null, 'en'),
+    'sah' => t('Yakut', null, 'en'),
+    'sai' => t('South American Indian', null, 'en'),
+    'sal' => t('Salishan languages', null, 'en'),
+    'sam' => t('Samaritan Aramaic', null, 'en'),
+    'san' => t('Sanskrit', null, 'en'),
+    'sas' => t('Sasak', null, 'en'),
+    'sat' => t('Santali', null, 'en'),
+    'scc' => t('Serbian', null, 'en'),
+    'scn' => t('Sicilian Italian', null, 'en'),
+    'sco' => t('Scots', null, 'en'),
+    'scr' => t('Croatian', null, 'en'),
+    'sel' => t('Selkup', null, 'en'),
+    'sem' => t('Semitic', null, 'en'),
+    'sga' => t('Irish, Old', null, 'en'),
+    'sgn' => t('Sign languages', null, 'en'),
+    'shn' => t('Shan', null, 'en'),
+    'sid' => t('Sidamo', null, 'en'),
+    'sin' => t('Sinhalese', null, 'en'),
+    'sio' => t('Siouan', null, 'en'),
+    'sit' => t('Sino-Tibetan', null, 'en'),
+    'sla' => t('Slavic', null, 'en'),
+    'slo' => t('Slovak', null, 'en'),
+    'slv' => t('Slovenian', null, 'en'),
+    'sma' => t('Southern Sami', null, 'en'),
+    'sme' => t('Northern Sami', null, 'en'),
+    'smi' => t('Sami', null, 'en'),
+    'smj' => t('Lule Sami', null, 'en'),
+    'smn' => t('Inari Sami', null, 'en'),
+    'smo' => t('Samoan', null, 'en'),
+    'sms' => t('Skolt Sami', null, 'en'),
+    'sna' => t('Shona', null, 'en'),
+    'snd' => t('Sindhi', null, 'en'),
+    'snk' => t('Soninke', null, 'en'),
+    'sog' => t('Sogdian', null, 'en'),
+    'som' => t('Somali', null, 'en'),
+    'son' => t('Songhai', null, 'en'),
+    'sot' => t('Sotho', null, 'en'),
+    'spa' => t('Spanish', null, 'en'),
+    'srd' => t('Sardinian', null, 'en'),
+    'srn' => t('Sranan', null, 'en'),
+    'srr' => t('Serer', null, 'en'),
+    'ssa' => t('Nilo-Saharan', null, 'en'),
+    'ssw' => t('Swazi', null, 'en'),
+    'suk' => t('Sukuma', null, 'en'),
+    'sun' => t('Sundanese', null, 'en'),
+    'sus' => t('Susu', null, 'en'),
+    'sux' => t('Sumerian', null, 'en'),
+    'swa' => t('Swahili', null, 'en'),
+    'swe' => t('Swedish', null, 'en'),
+    'syc' => t('Syriac', null, 'en'),
+    'syr' => t('Syriac, Modern', null, 'en'),
+    'tah' => t('Tahitian', null, 'en'),
+    'tai' => t('Tai', null, 'en'),
+    'tam' => t('Tamil', null, 'en'),
+    'tat' => t('Tatar', null, 'en'),
+    'tel' => t('Telugu', null, 'en'),
+    'tem' => t('Temne', null, 'en'),
+    'ter' => t('Terena', null, 'en'),
+    'tet' => t('Tetum', null, 'en'),
+    'tgk' => t('Tajik', null, 'en'),
+    'tgl' => t('Tagalog', null, 'en'),
+    'tha' => t('Thai', null, 'en'),
+    'tib' => t('Tibetan', null, 'en'),
+    'tig' => t('Tigré', null, 'en'),
+    'tir' => t('Tigrinya', null, 'en'),
+    'tiv' => t('Tiv', null, 'en'),
+    'tkl' => t('Tokelauan', null, 'en'),
+    'tlh' => t('Klingon', null, 'en'),
+    'tli' => t('Tlingit', null, 'en'),
+    'tmh' => t('Tamashek', null, 'en'),
+    'tog' => t('Tonga', null, 'en'),
+    'ton' => t('Tongan', null, 'en'),
+    'tpi' => t('Tok Pisin', null, 'en'),
+    'tsi' => t('Tsimshian', null, 'en'),
+    'tsn' => t('Tswana', null, 'en'),
+    'tso' => t('Tsonga', null, 'en'),
+    'tuk' => t('Turkmen', null, 'en'),
+    'tum' => t('Tumbuka', null, 'en'),
+    'tup' => t('Tupi languages', null, 'en'),
+    'tur' => t('Turkish', null, 'en'),
+    'tut' => t('Altaic', null, 'en'),
+    'tvl' => t('Tuvaluan', null, 'en'),
+    'twi' => t('Twi', null, 'en'),
+    'tyv' => t('Tuvinian', null, 'en'),
+    'udm' => t('Udmurt', null, 'en'),
+    'uga' => t('Ugaritic', null, 'en'),
+    'uig' => t('Uighur', null, 'en'),
+    'ukr' => t('Ukrainian', null, 'en'),
+    'umb' => t('Umbundu', null, 'en'),
+    'und' => t('Undetermined', null, 'en'),
+    'urd' => t('Urdu', null, 'en'),
+    'uzb' => t('Uzbek', null, 'en'),
+    'vai' => t('Vai', null, 'en'),
+    'ven' => t('Venda', null, 'en'),
+    'vie' => t('Vietnamese', null, 'en'),
+    'vol' => t('Volapük', null, 'en'),
+    'vot' => t('Votic', null, 'en'),
+    'wak' => t('Wakashan languages', null, 'en'),
+    'wal' => t('Wolayta', null, 'en'),
+    'war' => t('Waray', null, 'en'),
+    'was' => t('Washo', null, 'en'),
+    'wel' => t('Welsh', null, 'en'),
+    'wen' => t('Sorbian', null, 'en'),
+    'wln' => t('Walloon', null, 'en'),
+    'wol' => t('Wolof', null, 'en'),
+    'xal' => t('Oirat', null, 'en'),
+    'xho' => t('Xhosa', null, 'en'),
+    'yao' => t('Yao', null, 'en'),
+    'yap' => t('Yapese', null, 'en'),
+    'yid' => t('Yiddish', null, 'en'),
+    'yor' => t('Yoruba', null, 'en'),
+    'ypk' => t('Yupik languages', null, 'en'),
+    'zap' => t('Zapotec', null, 'en'),
+    'zbl' => t('Blissymbolics', null, 'en'),
+    'zen' => t('Zenaga', null, 'en'),
+    'zha' => t('Zhuang', null, 'en'),
+    'znd' => t('Zande languages', null, 'en'),
+    'zul' => t('Zulu', null, 'en'),
+    'zun' => t('Zuni', null, 'en'),
+    'zxx' => t('No linguistic content', null, 'en'),
+    'zza' => t('Zaza', null, 'en')
+  );
+    
+  $_key_to_name['type'] = array(
+    'object' => t('Object', null, 'en'),
+    'photo' => t('Photo', null, 'en'),
+    'projected' => t('Projected medium', null, 'en'),
+    'kit' => t('Kit', null, 'en'),
+    'map' => t('Map', null, 'en'),
+    'file' => t('Computer file', null, 'en'),
+    'sheet' => t('Sheet music', null, 'en'),
+    'periodical' => t('Periodical', null, 'en'),
+    'book' => t('Book', null, 'en'),
+    'sound' => t('Sound recording', null, 'en'),
+    'music' => t('Music', null, 'en'),
+    'manuscript' => t('Manuscript', null, 'en'),
+    'dvd' => t('DVD', null, 'en'),
+    'vhs' => t('VHS', null, 'en'),
+    'cassette' => t('Cassette', null, 'en'),
+    'cd' => t('CD', null, 'en')
+  );
 }
 
 function _millennium_human_string($biblio_data, $fieldkey, $translate = true, $lang = null) {
