module Data.LanguageCodes where import Prelude hiding (Ordering(..)) data ISO639_1 = AA | AB | AE | AF | AK | AM | AN | AR | AS | AV | AY | AZ | BA | BE | BG | BH | BI | BM | BN | BO | BR | BS | CA | CE | CH | CO | CR | CS | CU | CV | CY | DA | DE | DV | DZ | EE | EL | EN | EO | ES | ET | EU | FA | FF | FI | FJ | FO | FR | FY | GA | GD | GL | GN | GU | GV | HA | HE | HI | HO | HR | HT | HU | HY | HZ | IA | ID | IE | IG | II | IK | IO | IS | IT | IU | JA | JV | KA | KG | KI | KJ | KK | KL | KM | KN | KO | KR | KS | KU | KV | KW | KY | LA | LB | LG | LI | LN | LO | LT | LU | LV | MG | MH | MI | MK | ML | MN | MR | MS | MT | MY | NA | NB | ND | NE | NG | NL | NN | NO | NR | NV | NY | OC | OJ | OM | OR | OS | PA | PI | PL | PS | PT | QU | RM | RN | RO | RU | RW | SA | SC | SD | SE | SG | SI | SK | SL | SM | SN | SO | SQ | SR | SS | ST | SU | SV | SW | TA | TE | TG | TH | TI | TK | TL | TN | TO | TR | TS | TT | TW | TY | UG | UK | UR | UZ | VE | VI | VO | WA | WO | XH | YI | YO | ZA | ZH | ZU deriving (Show, Read, Eq, Enum, Ord) toChars (code) = case (code) of (AA) -> ('a', 'a') (AB) -> ('a', 'b') (AE) -> ('a', 'e') (AF) -> ('a', 'f') (AK) -> ('a', 'k') (AM) -> ('a', 'm') (AN) -> ('a', 'n') (AR) -> ('a', 'r') (AS) -> ('a', 's') (AV) -> ('a', 'v') (AY) -> ('a', 'y') (AZ) -> ('a', 'z') (BA) -> ('b', 'a') (BE) -> ('b', 'e') (BG) -> ('b', 'g') (BH) -> ('b', 'h') (BI) -> ('b', 'i') (BM) -> ('b', 'm') (BN) -> ('b', 'n') (BO) -> ('b', 'o') (BR) -> ('b', 'r') (BS) -> ('b', 's') (CA) -> ('c', 'a') (CE) -> ('c', 'e') (CH) -> ('c', 'h') (CO) -> ('c', 'o') (CR) -> ('c', 'r') (CS) -> ('c', 's') (CU) -> ('c', 'u') (CV) -> ('c', 'v') (CY) -> ('c', 'y') (DA) -> ('d', 'a') (DE) -> ('d', 'e') (DV) -> ('d', 'v') (DZ) -> ('d', 'z') (EE) -> ('e', 'e') (EL) -> ('e', 'l') (EN) -> ('e', 'n') (EO) -> ('e', 'o') (ES) -> ('e', 's') (ET) -> ('e', 't') (EU) -> ('e', 'u') (FA) -> ('f', 'a') (FF) -> ('f', 'f') (FI) -> ('f', 'i') (FJ) -> ('f', 'j') (FO) -> ('f', 'o') (FR) -> ('f', 'r') (FY) -> ('f', 'y') (GA) -> ('g', 'a') (GD) -> ('g', 'd') (GL) -> ('g', 'l') (GN) -> ('g', 'n') (GU) -> ('g', 'u') (GV) -> ('g', 'v') (HA) -> ('h', 'a') (HE) -> ('h', 'e') (HI) -> ('h', 'i') (HO) -> ('h', 'o') (HR) -> ('h', 'r') (HT) -> ('h', 't') (HU) -> ('h', 'u') (HY) -> ('h', 'y') (HZ) -> ('h', 'z') (IA) -> ('i', 'a') (ID) -> ('i', 'd') (IE) -> ('i', 'e') (IG) -> ('i', 'g') (II) -> ('i', 'i') (IK) -> ('i', 'k') (IO) -> ('i', 'o') (IS) -> ('i', 's') (IT) -> ('i', 't') (IU) -> ('i', 'u') (JA) -> ('j', 'a') (JV) -> ('j', 'v') (KA) -> ('k', 'a') (KG) -> ('k', 'g') (KI) -> ('k', 'i') (KJ) -> ('k', 'j') (KK) -> ('k', 'k') (KL) -> ('k', 'l') (KM) -> ('k', 'm') (KN) -> ('k', 'n') (KO) -> ('k', 'o') (KR) -> ('k', 'r') (KS) -> ('k', 's') (KU) -> ('k', 'u') (KV) -> ('k', 'v') (KW) -> ('k', 'w') (KY) -> ('k', 'y') (LA) -> ('l', 'a') (LB) -> ('l', 'b') (LG) -> ('l', 'g') (LI) -> ('l', 'i') (LN) -> ('l', 'n') (LO) -> ('l', 'o') (LT) -> ('l', 't') (LU) -> ('l', 'u') (LV) -> ('l', 'v') (MG) -> ('m', 'g') (MH) -> ('m', 'h') (MI) -> ('m', 'i') (MK) -> ('m', 'k') (ML) -> ('m', 'l') (MN) -> ('m', 'n') (MR) -> ('m', 'r') (MS) -> ('m', 's') (MT) -> ('m', 't') (MY) -> ('m', 'y') (NA) -> ('n', 'a') (NB) -> ('n', 'b') (ND) -> ('n', 'd') (NE) -> ('n', 'e') (NG) -> ('n', 'g') (NL) -> ('n', 'l') (NN) -> ('n', 'n') (NO) -> ('n', 'o') (NR) -> ('n', 'r') (NV) -> ('n', 'v') (NY) -> ('n', 'y') (OC) -> ('o', 'c') (OJ) -> ('o', 'j') (OM) -> ('o', 'm') (OR) -> ('o', 'r') (OS) -> ('o', 's') (PA) -> ('p', 'a') (PI) -> ('p', 'i') (PL) -> ('p', 'l') (PS) -> ('p', 's') (PT) -> ('p', 't') (QU) -> ('q', 'u') (RM) -> ('r', 'm') (RN) -> ('r', 'n') (RO) -> ('r', 'o') (RU) -> ('r', 'u') (RW) -> ('r', 'w') (SA) -> ('s', 'a') (SC) -> ('s', 'c') (SD) -> ('s', 'd') (SE) -> ('s', 'e') (SG) -> ('s', 'g') (SI) -> ('s', 'i') (SK) -> ('s', 'k') (SL) -> ('s', 'l') (SM) -> ('s', 'm') (SN) -> ('s', 'n') (SO) -> ('s', 'o') (SQ) -> ('s', 'q') (SR) -> ('s', 'r') (SS) -> ('s', 's') (ST) -> ('s', 't') (SU) -> ('s', 'u') (SV) -> ('s', 'v') (SW) -> ('s', 'w') (TA) -> ('t', 'a') (TE) -> ('t', 'e') (TG) -> ('t', 'g') (TH) -> ('t', 'h') (TI) -> ('t', 'i') (TK) -> ('t', 'k') (TL) -> ('t', 'l') (TN) -> ('t', 'n') (TO) -> ('t', 'o') (TR) -> ('t', 'r') (TS) -> ('t', 's') (TT) -> ('t', 't') (TW) -> ('t', 'w') (TY) -> ('t', 'y') (UG) -> ('u', 'g') (UK) -> ('u', 'k') (UR) -> ('u', 'r') (UZ) -> ('u', 'z') (VE) -> ('v', 'e') (VI) -> ('v', 'i') (VO) -> ('v', 'o') (WA) -> ('w', 'a') (WO) -> ('w', 'o') (XH) -> ('x', 'h') (YI) -> ('y', 'i') (YO) -> ('y', 'o') (ZA) -> ('z', 'a') (ZH) -> ('z', 'h') (ZU) -> ('z', 'u') fromChars (c1) (c2) = case ((c1), (c2)) of ('z', 'u') -> (Just) (ZU) ('z', 'h') -> (Just) (ZH) ('z', 'a') -> (Just) (ZA) ('y', 'o') -> (Just) (YO) ('y', 'i') -> (Just) (YI) ('x', 'h') -> (Just) (XH) ('w', 'o') -> (Just) (WO) ('w', 'a') -> (Just) (WA) ('v', 'o') -> (Just) (VO) ('v', 'i') -> (Just) (VI) ('v', 'e') -> (Just) (VE) ('u', 'z') -> (Just) (UZ) ('u', 'r') -> (Just) (UR) ('u', 'k') -> (Just) (UK) ('u', 'g') -> (Just) (UG) ('t', 'y') -> (Just) (TY) ('t', 'w') -> (Just) (TW) ('t', 't') -> (Just) (TT) ('t', 's') -> (Just) (TS) ('t', 'r') -> (Just) (TR) ('t', 'o') -> (Just) (TO) ('t', 'n') -> (Just) (TN) ('t', 'l') -> (Just) (TL) ('t', 'k') -> (Just) (TK) ('t', 'i') -> (Just) (TI) ('t', 'h') -> (Just) (TH) ('t', 'g') -> (Just) (TG) ('t', 'e') -> (Just) (TE) ('t', 'a') -> (Just) (TA) ('s', 'w') -> (Just) (SW) ('s', 'v') -> (Just) (SV) ('s', 'u') -> (Just) (SU) ('s', 't') -> (Just) (ST) ('s', 's') -> (Just) (SS) ('s', 'r') -> (Just) (SR) ('s', 'q') -> (Just) (SQ) ('s', 'o') -> (Just) (SO) ('s', 'n') -> (Just) (SN) ('s', 'm') -> (Just) (SM) ('s', 'l') -> (Just) (SL) ('s', 'k') -> (Just) (SK) ('s', 'i') -> (Just) (SI) ('s', 'g') -> (Just) (SG) ('s', 'e') -> (Just) (SE) ('s', 'd') -> (Just) (SD) ('s', 'c') -> (Just) (SC) ('s', 'a') -> (Just) (SA) ('r', 'w') -> (Just) (RW) ('r', 'u') -> (Just) (RU) ('r', 'o') -> (Just) (RO) ('r', 'n') -> (Just) (RN) ('r', 'm') -> (Just) (RM) ('q', 'u') -> (Just) (QU) ('p', 't') -> (Just) (PT) ('p', 's') -> (Just) (PS) ('p', 'l') -> (Just) (PL) ('p', 'i') -> (Just) (PI) ('p', 'a') -> (Just) (PA) ('o', 's') -> (Just) (OS) ('o', 'r') -> (Just) (OR) ('o', 'm') -> (Just) (OM) ('o', 'j') -> (Just) (OJ) ('o', 'c') -> (Just) (OC) ('n', 'y') -> (Just) (NY) ('n', 'v') -> (Just) (NV) ('n', 'r') -> (Just) (NR) ('n', 'o') -> (Just) (NO) ('n', 'n') -> (Just) (NN) ('n', 'l') -> (Just) (NL) ('n', 'g') -> (Just) (NG) ('n', 'e') -> (Just) (NE) ('n', 'd') -> (Just) (ND) ('n', 'b') -> (Just) (NB) ('n', 'a') -> (Just) (NA) ('m', 'y') -> (Just) (MY) ('m', 't') -> (Just) (MT) ('m', 's') -> (Just) (MS) ('m', 'r') -> (Just) (MR) ('m', 'n') -> (Just) (MN) ('m', 'l') -> (Just) (ML) ('m', 'k') -> (Just) (MK) ('m', 'i') -> (Just) (MI) ('m', 'h') -> (Just) (MH) ('m', 'g') -> (Just) (MG) ('l', 'v') -> (Just) (LV) ('l', 'u') -> (Just) (LU) ('l', 't') -> (Just) (LT) ('l', 'o') -> (Just) (LO) ('l', 'n') -> (Just) (LN) ('l', 'i') -> (Just) (LI) ('l', 'g') -> (Just) (LG) ('l', 'b') -> (Just) (LB) ('l', 'a') -> (Just) (LA) ('k', 'y') -> (Just) (KY) ('k', 'w') -> (Just) (KW) ('k', 'v') -> (Just) (KV) ('k', 'u') -> (Just) (KU) ('k', 's') -> (Just) (KS) ('k', 'r') -> (Just) (KR) ('k', 'o') -> (Just) (KO) ('k', 'n') -> (Just) (KN) ('k', 'm') -> (Just) (KM) ('k', 'l') -> (Just) (KL) ('k', 'k') -> (Just) (KK) ('k', 'j') -> (Just) (KJ) ('k', 'i') -> (Just) (KI) ('k', 'g') -> (Just) (KG) ('k', 'a') -> (Just) (KA) ('j', 'v') -> (Just) (JV) ('j', 'a') -> (Just) (JA) ('i', 'u') -> (Just) (IU) ('i', 't') -> (Just) (IT) ('i', 's') -> (Just) (IS) ('i', 'o') -> (Just) (IO) ('i', 'k') -> (Just) (IK) ('i', 'i') -> (Just) (II) ('i', 'g') -> (Just) (IG) ('i', 'e') -> (Just) (IE) ('i', 'd') -> (Just) (ID) ('i', 'a') -> (Just) (IA) ('h', 'z') -> (Just) (HZ) ('h', 'y') -> (Just) (HY) ('h', 'u') -> (Just) (HU) ('h', 't') -> (Just) (HT) ('h', 'r') -> (Just) (HR) ('h', 'o') -> (Just) (HO) ('h', 'i') -> (Just) (HI) ('h', 'e') -> (Just) (HE) ('h', 'a') -> (Just) (HA) ('g', 'v') -> (Just) (GV) ('g', 'u') -> (Just) (GU) ('g', 'n') -> (Just) (GN) ('g', 'l') -> (Just) (GL) ('g', 'd') -> (Just) (GD) ('g', 'a') -> (Just) (GA) ('f', 'y') -> (Just) (FY) ('f', 'r') -> (Just) (FR) ('f', 'o') -> (Just) (FO) ('f', 'j') -> (Just) (FJ) ('f', 'i') -> (Just) (FI) ('f', 'f') -> (Just) (FF) ('f', 'a') -> (Just) (FA) ('e', 'u') -> (Just) (EU) ('e', 't') -> (Just) (ET) ('e', 's') -> (Just) (ES) ('e', 'o') -> (Just) (EO) ('e', 'n') -> (Just) (EN) ('e', 'l') -> (Just) (EL) ('e', 'e') -> (Just) (EE) ('d', 'z') -> (Just) (DZ) ('d', 'v') -> (Just) (DV) ('d', 'e') -> (Just) (DE) ('d', 'a') -> (Just) (DA) ('c', 'y') -> (Just) (CY) ('c', 'v') -> (Just) (CV) ('c', 'u') -> (Just) (CU) ('c', 's') -> (Just) (CS) ('c', 'r') -> (Just) (CR) ('c', 'o') -> (Just) (CO) ('c', 'h') -> (Just) (CH) ('c', 'e') -> (Just) (CE) ('c', 'a') -> (Just) (CA) ('b', 's') -> (Just) (BS) ('b', 'r') -> (Just) (BR) ('b', 'o') -> (Just) (BO) ('b', 'n') -> (Just) (BN) ('b', 'm') -> (Just) (BM) ('b', 'i') -> (Just) (BI) ('b', 'h') -> (Just) (BH) ('b', 'g') -> (Just) (BG) ('b', 'e') -> (Just) (BE) ('b', 'a') -> (Just) (BA) ('a', 'z') -> (Just) (AZ) ('a', 'y') -> (Just) (AY) ('a', 'v') -> (Just) (AV) ('a', 's') -> (Just) (AS) ('a', 'r') -> (Just) (AR) ('a', 'n') -> (Just) (AN) ('a', 'm') -> (Just) (AM) ('a', 'k') -> (Just) (AK) ('a', 'f') -> (Just) (AF) ('a', 'e') -> (Just) (AE) ('a', 'b') -> (Just) (AB) ('a', 'a') -> (Just) (AA) _ -> (Nothing) language (code) = case (code) of (AA) -> "Afar" (AB) -> "Abkhazian" (AE) -> "Avestan" (AF) -> "Afrikaans" (AK) -> "Akan" (AM) -> "Amharic" (AN) -> "Aragonese" (AR) -> "Arabic" (AS) -> "Assamese" (AV) -> "Avaric" (AY) -> "Aymara" (AZ) -> "Azerbaijani" (BA) -> "Bashkir" (BE) -> "Belarusian" (BG) -> "Bulgarian" (BH) -> "Bihari languages" (BI) -> "Bislama" (BM) -> "Bambara" (BN) -> "Bengali" (BO) -> "Tibetan" (BR) -> "Breton" (BS) -> "Bosnian" (CA) -> "Catalan" (CE) -> "Chechen" (CH) -> "Chamorro" (CO) -> "Corsican" (CR) -> "Cree" (CS) -> "Czech" (CU) -> "Church Slavic" (CV) -> "Chuvash" (CY) -> "Welsh" (DA) -> "Danish" (DE) -> "German" (DV) -> "Dhivehi" (DZ) -> "Dzongkha" (EE) -> "Ewe" (EL) -> "Greek, Modern (1453-)" (EN) -> "English" (EO) -> "Esperanto" (ES) -> "Castilian" (ET) -> "Estonian" (EU) -> "Basque" (FA) -> "Persian" (FF) -> "Fulah" (FI) -> "Finnish" (FJ) -> "Fijian" (FO) -> "Faroese" (FR) -> "French" (FY) -> "Western Frisian" (GA) -> "Irish" (GD) -> "Gaelic" (GL) -> "Galician" (GN) -> "Guarani" (GU) -> "Gujarati" (GV) -> "Manx" (HA) -> "Hausa" (HE) -> "Hebrew" (HI) -> "Hindi" (HO) -> "Hiri Motu" (HR) -> "Croatian" (HT) -> "Haitian" (HU) -> "Hungarian" (HY) -> "Armenian" (HZ) -> "Herero" (IA) -> "Interlingua (International Auxiliary Language Association)" (ID) -> "Indonesian" (IE) -> "Interlingue" (IG) -> "Igbo" (II) -> "Nuosu" (IK) -> "Inupiaq" (IO) -> "Ido" (IS) -> "Icelandic" (IT) -> "Italian" (IU) -> "Inuktitut" (JA) -> "Japanese" (JV) -> "Javanese" (KA) -> "Georgian" (KG) -> "Kongo" (KI) -> "Gikuyu" (KJ) -> "Kuanyama" (KK) -> "Kazakh" (KL) -> "Greenlandic" (KM) -> "Central Khmer" (KN) -> "Kannada" (KO) -> "Korean" (KR) -> "Kanuri" (KS) -> "Kashmiri" (KU) -> "Kurdish" (KV) -> "Komi" (KW) -> "Cornish" (KY) -> "Kirghiz" (LA) -> "Latin" (LB) -> "Letzeburgesch" (LG) -> "Ganda" (LI) -> "Limburgan" (LN) -> "Lingala" (LO) -> "Lao" (LT) -> "Lithuanian" (LU) -> "Luba-Katanga" (LV) -> "Latvian" (MG) -> "Malagasy" (MH) -> "Marshallese" (MI) -> "Maori" (MK) -> "Macedonian" (ML) -> "Malayalam" (MN) -> "Mongolian" (MR) -> "Marathi" (MS) -> "Malay" (MT) -> "Maltese" (MY) -> "Burmese" (NA) -> "Nauru" (NB) -> "Bokm\229l, Norwegian" (ND) -> "Ndebele, North" (NE) -> "Nepali" (NG) -> "Ndonga" (NL) -> "Dutch" (NN) -> "Norwegian Nynorsk" (NO) -> "Norwegian" (NR) -> "Ndebele, South" (NV) -> "Navaho" (NY) -> "Chewa" (OC) -> "Occitan (post 1500)" (OJ) -> "Ojibwa" (OM) -> "Oromo" (OR) -> "Oriya" (OS) -> "Ossetian" (PA) -> "Panjabi" (PI) -> "Pali" (PL) -> "Polish" (PS) -> "Pashto" (PT) -> "Portuguese" (QU) -> "Quechua" (RM) -> "Romansh" (RN) -> "Rundi" (RO) -> "Moldavian" (RU) -> "Russian" (RW) -> "Kinyarwanda" (SA) -> "Sanskrit" (SC) -> "Sardinian" (SD) -> "Sindhi" (SE) -> "Northern Sami" (SG) -> "Sango" (SI) -> "Sinhala" (SK) -> "Slovak" (SL) -> "Slovenian" (SM) -> "Samoan" (SN) -> "Shona" (SO) -> "Somali" (SQ) -> "Albanian" (SR) -> "Serbian" (SS) -> "Swati" (ST) -> "Sotho, Southern" (SU) -> "Sundanese" (SV) -> "Swedish" (SW) -> "Swahili" (TA) -> "Tamil" (TE) -> "Telugu" (TG) -> "Tajik" (TH) -> "Thai" (TI) -> "Tigrinya" (TK) -> "Turkmen" (TL) -> "Tagalog" (TN) -> "Tswana" (TO) -> "Tonga (Tonga Islands)" (TR) -> "Turkish" (TS) -> "Tsonga" (TT) -> "Tatar" (TW) -> "Twi" (TY) -> "Tahitian" (UG) -> "Uighur" (UK) -> "Ukrainian" (UR) -> "Urdu" (UZ) -> "Uzbek" (VE) -> "Venda" (VI) -> "Vietnamese" (VO) -> "Volap\252k" (WA) -> "Walloon" (WO) -> "Wolof" (XH) -> "Xhosa" (YI) -> "Yiddish" (YO) -> "Yoruba" (ZA) -> "Chuang" (ZH) -> "Chinese" (ZU) -> "Zulu"