"""Controlled vocabularies. In the past we defined some of these using hyrax authority files; those types have been implemented using the functional Enum syntax to allow identifiers that are not valid python variable names (e.g. URLs, `del`). Other types should be defined with the class Enum syntax and conventional, all-uppercase member names."""

from enum import Enum

# https://github.com/UCLALibrary/californica/blob/main/config/authorities/licenses.yml
# included the "active" attributes, which I think had an effect in californica, as comments
License = Enum(
    "License",
    (
        (
            "http://creativecommons.org/licenses/by/3.0/us/",
            "Attribution 3.0 United States",
        ),  # active: false
        (
            "http://creativecommons.org/licenses/by-sa/3.0/us/",
            "Attribution-ShareAlike 3.0 United States",
        ),  # active: false
        (
            "http://creativecommons.org/licenses/by-nc/3.0/us/",
            "Attribution-NonCommercial 3.0 United States",
        ),  # active: false
        (
            "http://creativecommons.org/licenses/by-nd/3.0/us/",
            "Attribution-NoDerivs 3.0 United States",
        ),  # active: false
        (
            "http://creativecommons.org/licenses/by-nc-nd/3.0/us/",
            "Attribution-NonCommercial-NoDerivs 3.0 United States",
        ),  # active: false
        (
            "http://creativecommons.org/licenses/by-nc-sa/3.0/us/",
            "Attribution-NonCommercial-ShareAlike 3.0 United States",
        ),  # active: false
        (
            "http://www.europeana.eu/portal/rights/rr-r.html",
            "All rights reserved",
        ),  # active: false
        (
            "https://creativecommons.org/licenses/by/4.0/",
            "Creative Commons BY Attribution 4.0 International",
        ),  # active: true
        (
            "https://creativecommons.org/licenses/by-sa/4.0/",
            "Creative Commons BY-SA Attribution-ShareAlike 4.0 International",
        ),  # active: true
        (
            "https://creativecommons.org/licenses/by-nd/4.0/",
            "Creative Commons BY-ND Attribution-NoDerivatives 4.0 International",
        ),  # active: true
        (
            "https://creativecommons.org/licenses/by-nc/4.0/",
            "Creative Commons BY-NC Attribution-NonCommercial 4.0 International",
        ),  # active: true
        (
            "https://creativecommons.org/licenses/by-nc-nd/4.0/",
            "Creative Commons BY-NC-ND Attribution-NonCommercial-NoDerivs 4.0 International",
        ),  # active: true
        (
            "https://creativecommons.org/licenses/by-nc-sa/4.0/",
            "Creative Commons BY-NC-SA Attribution-NonCommercial-ShareAlike 4.0 International",
        ),  # active: true
        (
            "http://creativecommons.org/publicdomain/zero/1.0/",
            "Creative Commons CC0 1.0 Universal",
        ),  # active: true
        (
            "http://creativecommons.org/publicdomain/mark/1.0/",
            "Creative Commons Public Domain Mark 1.0",
        ),  # active: true
    ),
)


# Defined as models in Californica
class ObjectType(Enum):
    COLLECTION = "Collection"
    WORK = "Work"
    CHILD_WORK = "ChildWork"


# https://github.com/UCLALibrary/californica/blob/main/config/authorities/resource_types.yml
ResourceType = Enum(
    "ResourceType",
    (
        ("http://id.loc.gov/vocabulary/resourceTypes/car", "cartographic"),
        ("http://id.loc.gov/vocabulary/resourceTypes/col", "collection"),
        ("http://id.loc.gov/vocabulary/resourceTypes/mix", "mixed material"),
        ("http://id.loc.gov/vocabulary/resourceTypes/mov", "moving image"),
        ("http://id.loc.gov/vocabulary/resourceTypes/not", "notated music"),
        ("http://id.loc.gov/vocabulary/resourceTypes/aud", "sound recording"),
        ("http://id.loc.gov/vocabulary/resourceTypes/aum", "sound recording-musical"),
        (
            "http://id.loc.gov/vocabulary/resourceTypes/aun",
            "sound recording-nonmusical",
        ),
        ("http://id.loc.gov/vocabulary/resourceTypes/img", "still image"),
        ("http://id.loc.gov/vocabulary/resourceTypes/txt", "text"),
        ("http://id.loc.gov/vocabulary/resourceTypes/art", "three dimensional object"),
    ),
)

# https://github.com/UCLALibrary/californica/blob/main/config/authorities/rights_statements.yml
RightsStatement = Enum(
    "RightsStatement",
    (
        (
            "http://vocabs.library.ucla.edu/rights/copyrighted",
            "copyrighted",
        ),  # active: true
        ("http://vocabs.library.ucla.edu/rights/unknown", "unknown"),  # active: true
        (
            "http://vocabs.library.ucla.edu/rights/publicDomain",
            "public domain",
        ),  # active: true
    ),
)

# https://github.com/UCLALibrary/californica/blob/main/config/authorities/iiif_text_directions.yml
TextDirection = Enum(
    "TextDirection",
    [
        ("http://iiif.io/api/presentation/2#leftToRightDirection", "left-to-right"),
        ("http://iiif.io/api/presentation/2#rightToLeftDirection", "right-to-left"),
        ("http://iiif.io/api/presentation/2#topToBottomDirection", "top-to-bottom"),
        ("http://iiif.io/api/presentation/2#bottomToTopDirection", "bottom-to-top"),
    ],
)


# https://github.com/UCLALibrary/californica/blob/main/config/authorities/iiif_viewing_hints.yml
ViewingHint = Enum(
    "ViewingHint",
    (
        ("http://iiif.io/api/presentation/2#pagedHint", "paged"),
        ("http://iiif.io/api/presentation/2#individualsHint", "individuals"),
        ("http://iiif.io/api/presentation/2#continuousHint", "continuous"),
        ("http://iiif.io/api/presentation/2#nonPagedHint", "non-paged"),
        ("http://iiif.io/api/presentation/2#facingPagesHint", "facing-pages"),
    ),
)


# Based on a complicated, hard-to-track bunch of types in californica; these are the ones we ended up using
class Visibility(Enum):
    AUTHENTICATED = "authenticated"
    OPEN = "open"
    UCLA = "ucla"


# https://github.com/UCLALibrary/californica/blob/main/config/authorities/languages.yml
Language = Enum(
    "Language",
    (
        ("aar", "Afar"),
        ("abk", "Abkhaz"),
        ("ace", "Achinese"),
        ("ach", "Acoli"),
        ("ada", "Adangme"),
        ("ady", "Adygei"),
        ("afa", "Afroasiatic (Other)"),
        ("afh", "Afrihili (Artificial language)"),
        ("afr", "Afrikaans"),
        ("ahs", "Ashe"),
        ("ain", "Ainu"),
        ("ajm", "Aljamía"),
        ("aka", "Akan"),
        ("akf", "Akpa"),
        ("akk", "Akkadian"),
        ("alb", "Albanian"),
        ("ale", "Aleut"),
        ("alg", "Algonquian (Other)"),
        ("alt", "Altai"),
        ("amh", "Amharic"),
        ("amuz1254", "Amuzgo (Amusgo)"),
        ("anc", "Ngas"),
        ("ang", "English, Old (ca. 450-1100)"),
        ("ann", "Obolo"),
        ("ano", "Andoque"),
        ("anp", "Angika"),
        ("apa", "Apache languages"),
        ("ara", "Arabic"),
        ("arc", "Aramaic"),
        ("arg", "Aragonese"),
        ("arm", "Armenian"),
        ("arn", "Mapuche"),
        ("arp", "Arapaho"),
        ("art", "Artificial (Other)"),
        ("arw", "Arawak"),
        ("asm", "Assamese"),
        ("ast", "Bable"),
        ("ath", "Athapascan (Other)"),
        ("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 (Other)"),
        ("bej", "Beja"),
        ("bel", "Belarusian"),
        ("bem", "Bemba"),
        ("ben", "Bengali"),
        ("ber", "Berber (Other)"),
        ("bfw", "Bondo"),
        ("bhb", "Bhili"),
        ("bho", "Bhojpuri"),
        ("bih", "Bihari (Other)"),
        ("bik", "Bikol"),
        ("bin", "Edo"),
        ("bis", "Bislama"),
        ("bjn", "Banjar"),
        ("bla", "Siksika"),
        ("bmr", "Muinane"),
        ("bns", "Bundeli"),
        ("bnt", "Bantu (Other)"),
        ("boa", "Bora-Miraña [Bora]"),
        ("bos", "Bosnian"),
        ("bra", "Braj"),
        ("bre", "Breton"),
        ("btk", "Batak"),
        ("bua", "Buriat"),
        ("bug", "Bugis"),
        ("bul", "Bulgarian"),
        ("bur", "Burmese"),
        ("bxr", "Russia Buriat"),
        ("byn", "Bilin"),
        ("cad", "Caddo"),
        ("cai", "Central American Indian (Other)"),
        ("cam", "Khmer"),
        ("car", "Carib"),
        ("cat", "Catalan"),
        ("cau", "Caucasian (Other)"),
        ("ceb", "Cebuano"),
        ("cel", "Celtic (Other)"),
        ("cha", "Chamorro"),
        ("chb", "Chibcha"),
        ("che", "Chechen"),
        ("chg", "Chagatai"),
        ("chi", "Chinese"),
        ("chin1484", "Chinanteco"),
        ("chk", "Chuukese"),
        ("chm", "Mari"),
        ("chn", "Chinook jargon"),
        ("cho", "Choctaw"),
        ("chp", "Chipewyan"),
        ("chr", "Cherokee"),
        ("chu", "Church Slavonic"),
        ("chv", "Chuvash"),
        ("chy", "Cheyenne"),
        ("cin", "Cinta"),
        ("ckt", "Chukot (Chukchi)"),
        ("cmc", "Chamic languages"),
        ("cnr", "Montenegrin"),
        ("cop", "Coptic"),
        ("cor", "Cornish"),
        ("cos", "Corsican"),
        ("cpa", "Christian Palestinian Aramaic"),
        ("cpe", "Creoles and Pidgins, English-based (Other)"),
        ("cpf", "Creoles and Pidgins, French-based (Other)"),
        ("cpp", "Creoles and Pidgins, Portuguese-based (Other)"),
        ("cre", "Cree"),
        ("crh", "Crimean Tatar"),
        ("crp", "Creoles and Pidgins (Other)"),
        ("csb", "Kashubian"),
        ("ctu", "Ch’ol (Chol)"),
        ("cus", "Cushitic (Other)"),
        ("cze", "Czech"),
        ("dak", "Dakota"),
        ("dan", "Danish"),
        ("dar", "Dargwa"),
        ("day", "Dayak"),
        ("ddg", "Fataluku"),
        ("del", "Delaware"),
        ("den", "Slavey"),
        ("dgr", "Dogrib"),
        ("din", "Dinka"),
        ("div", "Divehi"),
        ("dlg", "Dolgan"),
        ("dng", "Dungan"),
        ("doi", "Dogri"),
        ("dra", "Dravidian (Other)"),
        ("dsb", "Lower Sorbian"),
        ("dua", "Duala"),
        ("dum", "Dutch, Middle (ca. 1050-1350)"),
        ("dut", "Dutch"),
        ("dyu", "Dyula"),
        ("dzo", "Dzongkha"),
        ("efi", "Efik"),
        ("egy", "Egyptian"),
        ("eka", "Ekajuk"),
        ("ekp", "Ekpeye"),
        ("elx", "Elamite"),
        ("eng", "English"),
        ("enm", "English, Middle (1100-1500)"),
        ("epo", "Esperanto"),
        ("esk", "Eskimo languages"),
        ("esp", "Esperanto"),
        ("est", "Estonian"),
        ("esx", "Eskaleut languages"),
        ("eth", "Ethiopic"),
        ("eve", "Even"),
        ("evn", "Evenki"),
        ("ewe", "Ewe"),
        ("ewo", "Ewondo"),
        ("fan", "Fang"),
        ("fao", "Faroese"),
        ("far", "Faroese"),
        ("fat", "Fanti"),
        ("fij", "Fijian"),
        ("fil", "Filipino"),
        ("fin", "Finnish"),
        ("fiu", "Finno-Ugrian (Other)"),
        ("fon", "Fon"),
        ("fre", "French"),
        ("fri", "Frisian"),
        ("frm", "French, Middle (ca. 1300-1600)"),
        ("fro", "French, Old (ca. 842-1300)"),
        ("frr", "North Frisian"),
        ("frs", "East Frisian"),
        ("fry", "Frisian"),
        ("fuc", "Pulaar"),
        ("ful", "Fula"),
        ("fur", "Friulian"),
        ("fuv", "Fulfude"),
        ("gaa", "Gã"),
        ("gae", "Scottish Gaelix"),
        ("gag", "Galician"),
        ("gal", "Oromo"),
        ("gay", "Gayo"),
        ("gba", "Gbaya"),
        ("gbj", "Bodo Gadaba"),
        ("gbr", "Gbagyi / Gwari"),
        ("gem", "Germanic (Other)"),
        ("geo", "Georgian"),
        ("ger", "German"),
        ("gez", "Ethiopic"),
        ("gil", "Gilbertese"),
        ("gla", "Scottish Gaelic"),
        ("gld", "Nanai"),
        ("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"),
        ("gua", "Guarani"),
        ("guj", "Gujarati"),
        ("gwi", "Gwich'in"),
        ("hai", "Haida"),
        ("hat", "Haitian French Creole"),
        ("hau", "Hausa"),
        ("haw", "Hawaiian"),
        ("hbb", "Huba"),
        ("hch", "Wixárika (Huichol)"),
        ("heb", "Hebrew"),
        ("her", "Herero"),
        ("hil", "Hiligaynon"),
        ("him", "Western Pahari languages"),
        ("hin", "Hindi"),
        ("hit", "Hittite"),
        ("hmn", "Hmong"),
        ("hmo", "Hiri Motu"),
        ("hnd", "Hindko (Southern)"),
        ("hne", "Chhattisgarhi"),
        ("hrv", "Croatian"),
        ("hsb", "Upper Sorbian"),
        ("hto", "Murui, Mɨnɨka dialect [Minica Huitoto]"),
        ("hun", "Hungarian"),
        ("hup", "Hupa"),
        ("huu", "Murui, Bue dialect [Murui Huitoto]"),
        ("iba", "Iban"),
        ("ibo", "Igbo"),
        ("ice", "Icelandic"),
        ("ido", "Ido"),
        ("idu", "Idoma"),
        ("ige", "Igede"),
        ("igl", "Igala"),
        ("iii", "Sichuan Yi"),
        ("ijn", "Kalabari"),
        ("ijo", "Ijo"),
        ("iku", "Inuktitut"),
        ("ile", "Interlingue"),
        ("ilo", "Iloko"),
        ("ina", "Interlingua (International Auxiliary Language Association)"),
        ("inc", "Indic (Other)"),
        ("ind", "Indonesian"),
        ("ine", "Indo-European (Other)"),
        ("inh", "Ingush"),
        ("int", "Interlingua (International Auxiliary Language Association)"),
        ("ipk", "Inupiaq"),
        ("ira", "Iranian (Other)"),
        ("iri", "Irish"),
        ("iro", "Iroquoian (Other)"),
        ("ish", "Esan"),
        ("iso", "Isoko"),
        ("ita", "Italian"),
        ("itl", "Itelmen"),
        ("its", "Isekiri"),
        ("jar", "Jarawa (Nigeria)"),
        ("jav", "Javanese"),
        ("jbo", "Lojban (Artificial language)"),
        ("jbu", "Jukun Takum"),
        ("jib", "Jibu"),
        ("jpn", "Japanese"),
        ("jpr", "Judeo-Persian"),
        ("jrb", "Judeo-Arabic"),
        ("kaa", "Kara-Kalpak"),
        ("kab", "Kabyle"),
        ("kac", "Kachin"),
        ("kal", "Kalâtdlisut"),
        ("kam", "Kamba"),
        ("kan", "Kannada"),
        ("kao", "Kassonke"),
        ("kar", "Karen languages"),
        ("kas", "Kashmiri"),
        ("kau", "Kanuri"),
        ("kaw", "Kawi"),
        ("kaz", "Kazakh"),
        ("kbd", "Kabardian"),
        ("kca", "Khanty"),
        ("kfe", "Kota"),
        ("kff", "Koya"),
        ("kha", "Khasi"),
        ("khi", "Khoisan (Other)"),
        ("khm", "Khmer"),
        ("kho", "Khotanese"),
        ("kic", "Kickapoo (Kikapú, Kikaapoa)"),
        ("kik", "Kikuyu"),
        ("kin", "Kinyarwanda"),
        ("kir", "Kyrgyz"),
        ("kmb", "Kimbundu"),
        ("koa", "Khassonké"),
        ("kok", "Konkani"),
        ("kom", "Komi"),
        ("kon", "Kongo"),
        ("kor", "Korean"),
        ("kos", "Kosraean"),
        ("kpe", "Kpelle"),
        ("kpy", "Koryak"),
        ("krc", "Karachay-Balkar"),
        ("krl", "Karelian"),
        ("kro", "Kru (Other)"),
        ("kru", "Kurukh"),
        ("kua", "Kuanyama"),
        ("kum", "Kumyk"),
        ("kur", "Kurdish"),
        ("kus", "Kusaie"),
        ("kut", "Kootenai"),
        ("lad", "Ladino"),
        ("lah", "Lahndā"),
        ("lam", "Lamba (Zambia and Congo)"),
        ("lan", "Occitan (post 1500)"),
        ("lao", "Lao"),
        ("lap", "Sami"),
        ("lat", "Latin"),
        ("lav", "Latvian"),
        ("lez", "Lezgian"),
        ("lim", "Limburgish"),
        ("lin", "Lingala"),
        ("lit", "Lithuanian"),
        ("lol", "Mongo-Nkundu"),
        ("loz", "Lozi"),
        ("ltz", "Luxembourgish"),
        ("lua", "Luba-Lulua"),
        ("lub", "Luba-Katanga"),
        ("lug", "Ganda"),
        ("lui", "Luiseño"),
        ("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 (Other)"),
        ("mar", "Marathi"),
        ("mas", "Maasai"),
        ("max", "Manx"),
        ("may", "Malay"),
        ("maza1293", "Mazahua"),
        ("maza1295", "Mazateco"),
        ("mbf", "Baba Malay"),
        ("mdf", "Moksha"),
        ("mdr", "Mandar"),
        ("men", "Mende"),
        ("mga", "Irish, Middle (ca. 1100-1550)"),
        ("mic", "Micmac"),
        ("min", "Minangkabau"),
        ("mira1254", "Miraña"),
        ("mis", "Miscellaneous languages"),
        ("mixe1286", "Mixe (Ayuuk)"),
        ("mixt1422", "Mixteco"),
        ("mkh", "Mon-Khmer (Other)"),
        ("mla", "Malagasy"),
        ("mlg", "Malagasy"),
        ("mlt", "Maltese"),
        ("mnc", "Manchu"),
        ("mni", "Manipuri"),
        ("mno", "Manobo languages"),
        ("mns", "Mansi"),
        ("moh", "Mohawk"),
        ("mol", "Moldavian"),
        ("mon", "Mongolian"),
        ("mos", "Mooré"),
        ("mul", "Multiple languages"),
        ("mun", "Munda (Other)"),
        ("mus", "Creek"),
        ("mwl", "Mirandese"),
        ("mwr", "Marwari"),
        ("myn", "Mayan languages"),
        ("myv", "Erzya"),
        ("nah", "Nahuatl"),
        ("nai", "North American Indian (Other)"),
        ("nap", "Neapolitan Italian"),
        ("nau", "Nauru"),
        ("nav", "Navajo"),
        ("nbl", "Ndebele (South Africa)"),
        ("nde", "Ndebele (Zimbabwe)"),
        ("ndo", "Ndonga"),
        ("nds", "Low German"),
        ("nep", "Nepali"),
        ("new", "Newari"),
        ("nia", "Nias"),
        ("nic", "Niger-Kordofanian (Other)"),
        ("nio", "Nganasan"),
        ("niu", "Niuean"),
        ("niv", "Gilyak (Nivkh)"),
        ("nkx", "Nkọrọọ"),
        ("nno", "Norwegian (Nynorsk)"),
        ("nob", "Norwegian (Bokmål)"),
        ("nog", "Nogai"),
        ("noj", "Nonuya"),
        ("non", "Old Norse"),
        ("nor", "Norwegian"),
        ("nqo", "N'Ko"),
        ("nso", "Northern Sotho"),
        ("nub", "Nubian languages"),
        ("nup", "Nupe-Nupe-Tako"),
        ("nwc", "Newari, Old"),
        ("nya", "Nyanja"),
        ("nym", "Nyamwezi"),
        ("nyn", "Nyankole"),
        ("nyo", "Nyoro"),
        ("nzi", "Nzima"),
        ("nzm", "Zeme Naga"),
        ("oca", "Ocaina"),
        ("oci", "Occitan (post-1500)"),
        ("oji", "Ojibwa"),
        ("omq", "Oto-Manguean Languages"),
        ("ori", "Oriya"),
        ("orm", "Oromo"),
        ("osa", "Osage"),
        ("oss", "Ossetic"),
        ("ota", "Turkish, Ottoman"),
        ("oto", "Otomian languages"),
        ("paa", "Papuan (Other)"),
        ("pag", "Pangasinan"),
        ("pal", "Pahlavi"),
        ("pam", "Pampanga"),
        ("pan", "Panjabi"),
        ("pap", "Papiamento"),
        ("pau", "Palauan"),
        ("pcl", "Pardhi"),
        ("peo", "Old Persian (ca. 600-400 B.C.)"),
        ("per", "Persian"),
        ("phi", "Philippine (Other)"),
        ("phn", "Phoenician"),
        ("pli", "Pali"),
        ("pol", "Polish"),
        ("pon", "Pohnpeian"),
        ("por", "Portuguese"),
        ("pra", "Prakrit languages"),
        ("pro", "Provençal (to 1500)"),
        ("pus", "Pushto"),
        ("que", "Quechua"),
        ("raj", "Rajasthani"),
        ("rap", "Rapanui"),
        ("rar", "Rarotongan"),
        ("roa", "Romance (Other)"),
        ("roh", "Raeto-Romance"),
        ("rom", "Romani"),
        ("rum", "Romanian"),
        ("run", "Rundi"),
        ("rup", "Aromanian"),
        ("rus", "Russian"),
        ("sad", "Sandawe"),
        ("sag", "Sango (Ubangi Creole)"),
        ("sah", "Yakut"),
        ("sai", "South American Indian (Other)"),
        ("sal", "Salishan languages"),
        ("sam", "Samaritan Aramaic"),
        ("san", "Sanskrit"),
        ("sao", "Samoan"),
        ("sas", "Sasak"),
        ("sat", "Santali"),
        ("scc", "Serbian"),
        ("sck", "Sadri"),
        ("scn", "Sicilian Italian"),
        ("sco", "Scots"),
        ("scr", "Croatian"),
        ("sel", "Selkup"),
        ("sem", "Semitic (Other)"),
        ("sga", "Irish, Old (to 1100)"),
        ("sgn", "Sign languages"),
        ("shn", "Shan"),
        ("sho", "Shona"),
        ("sid", "Sidamo"),
        ("sin", "Sinhalese"),
        ("sio", "Siouan (Other)"),
        ("sit", "Sino-Tibetan (Other)"),
        ("skr", "Saraiki"),
        ("sla", "Slavic (Other)"),
        ("slo", "Slovak"),
        ("slv", "Slovenian"),
        ("sma", "Southern Sami"),
        ("sme", "Northern Sami"),
        ("smi", "Sami"),
        ("smj", "Lule Sami"),
        ("smn", "Inari Sami"),
        ("smo", "Samoan"),
        ("sms", "Skolt Sami"),
        ("sna", "Shona"),
        ("snd", "Sindhi"),
        ("snh", "Sinhalese"),
        ("snk", "Soninke"),
        ("sog", "Sogdian"),
        ("som", "Somali"),
        ("son", "Songhai"),
        ("sot", "Sotho"),
        ("spa", "Spanish"),
        ("srb", "Sora"),
        ("srd", "Sardinian"),
        ("srn", "Sranan"),
        ("srp", "Serbian"),
        ("srr", "Serer"),
        ("ssa", "Nilo-Saharan (Other)"),
        ("sso", "Sotho"),
        ("ssw", "Swazi"),
        ("sty", "Siberian Tatar"),
        ("suk", "Sukuma"),
        ("sun", "Sundanese"),
        ("sus", "Susu"),
        ("sux", "Sumerian"),
        ("swa", "Swahili"),
        ("swe", "Swedish"),
        ("swz", "Swazi"),
        ("syc", "Syriac"),
        ("sym", "Maya Samo"),
        ("syr", "Syriac, Modern"),
        ("tag", "Tagalog"),
        ("tah", "Tahitian"),
        ("tai", "Tai (Other)"),
        ("taj", "Tajik"),
        ("tam", "Tamil"),
        ("tar", "Tatar"),
        ("tat", "Tatar"),
        ("tca", "Magütá [Ticuna]"),
        ("tcx", "Toda"),
        ("tcy", "Tulu"),
        ("tel", "Telugu"),
        ("tem", "Temne"),
        ("tequ1244", "Chontal de Oaxaca"),
        ("ter", "Terena"),
        ("tet", "Tetum"),
        ("tgk", "Tajik"),
        ("tgl", "Tagalog"),
        ("tha", "Thai"),
        ("tib", "Tibetan"),
        ("tig", "Tigré"),
        ("tir", "Tigrinya"),
        ("tiv", "Tiv"),
        ("tkl", "Tokelauan"),
        ("tlap1252", "Tlapeneco (Me´phaa)"),
        ("tlh", "Klingon (Artificial language)"),
        ("tli", "Tlingit"),
        ("tmh", "Tamashek"),
        ("tog", "Tonga (Nyasa)"),
        ("toj", "Tojolabal"),
        ("ton", "Tongan"),
        ("tpi", "Tok Pisin"),
        ("triq1251", "Triqui (Trique)"),
        ("tru", "Truk"),
        ("tsi", "Tsimshian"),
        ("tsn", "Tswana"),
        ("tso", "Tsonga"),
        ("tsw", "Tswana"),
        ("tuk", "Turkmen"),
        ("tum", "Tumbuka"),
        ("tup", "Tupi languages"),
        ("tur", "Turkish"),
        ("tut", "Altaic (Other)"),
        ("tvl", "Tuvaluan"),
        ("twi", "Twi"),
        ("tyv", "Tuvinian"),
        ("tzh", "Tseltal (Tzeltal)"),
        ("tzo", "Tsotsil (Tzotzil)"),
        ("udm", "Udmurt"),
        ("uga", "Ugaritic"),
        ("uig", "Uighur"),
        ("ukr", "Ukrainian"),
        ("umb", "Umbundu"),
        ("und", "Undetermined"),
        ("unr", "Mundari"),
        ("urd", "Urdu"),
        ("urh", "Urhobo"),
        ("uzb", "Uzbek"),
        ("vai", "Vai"),
        ("ven", "Venda"),
        ("vie", "Vietnamese"),
        ("vol", "Volapük"),
        ("vot", "Votic"),
        ("wak", "Wakashan languages"),
        ("wal", "Wolayta"),
        ("war", "Waray"),
        ("was", "Washoe"),
        ("wel", "Welsh"),
        ("wen", "Sorbian (Other)"),
        ("wln", "Walloon"),
        ("wol", "Wolof"),
        ("wtm", "Mewati"),
        ("xag", "Caucasian Albanian"),
        ("xal", "Oirat"),
        ("xho", "Xhosa"),
        ("yao", "Yao (Africa)"),
        ("yap", "Yapese"),
        ("yid", "Yiddish"),
        ("yor", "Yoruba"),
        ("ypk", "Yupik languages"),
        ("yrk", "Nenets"),
        ("zap", "Zapotec"),
        ("zbl", "Blissymbolics"),
        ("zen", "Zenaga"),
        ("zha", "Zhuang"),
        ("znd", "Zande languages"),
        ("zoqu1261", "Zoque"),
        ("zul", "Zulu"),
        ("zun", "Zuni"),
        ("zxx", "No linguistic content"),
        ("zza", "Zaza"),
    ),
)
