radnelac 0.0.2

Calculations in a variety of different timekeeping systems.
Documentation
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

use crate::display::text::prelude::*;

pub const EN_DICTIONARY: Dictionary = Dictionary {
    akan_cycle: Some(AkanCycleDictionary {
        // Using names from Wikipedia
        // https://en.wikipedia.org/wiki/Akan_calendar
        nwona: "Nwona",
        nkyi: "Nkyi",
        kuru: "Kuro",
        kwa: "Kwa",
        mono: "Mono",
        fo: "Fo",
        wukuo: "Wukuo",
        yaw: "Ya",
        fie: "Fi",
        afie: "Afi",
        memene: "Memene",
        kwasi: "Kwasi",
        dwo: "Dwo",
        bene: "Bene",
        seperator: "-",
    }),
    armenian: Some(ArmenianDictionary {
        //https://en.wikipedia.org/wiki/Armenian_calendar
        nawasardi: "Nawasard",
        hori: "Hoṙi",
        sahmi: "Sahmi",
        tre: "Trē",
        kaloch: "Kʿałocʿ",
        arach: "Aracʿ",
        mehekani: "Mehekan",
        areg: "Areg",
        ahekani: "Ahekan",
        mareri: "Mareri",
        margach: "Margacʿ",
        hrotich: "Hroticʿ",
        aweleac: "aweleacʿ",
        areg_day: "Areg",
        hrand: "Hrand",
        aram: "Aram",
        margar: "Margar",
        ahrank: "Ahrank’",
        mazdel: "Mazdeł",
        astlik: "Astłik",
        mihr: "Mihr",
        jopaber: "Jopaber",
        murc: "Murç",
        erezhan: "Erezhan",
        ani: "Ani",
        parkhar: "Parkhar",
        vanat: "Vanat",
        aramazd: "Aramazd",
        mani: "Mani",
        asak: "Asak",
        masis: "Masis",
        anahit: "Anahit",
        aragats: "Aragats",
        gorgor: "Gorgor",
        kordvik: "Kordvik",
        tsmak: "Tsmak",
        lusnak: "Lusnak",
        tsron: "Tsrōn",
        npat: "Npat",
        vahagn: "Vahagn",
        sim: "Sim",
        varag: "Varag",
        giseravar: "Gišeravar",
        before_epoch_full: "Before Armenian Era",
        after_epoch_full: "Armenian Era",
        before_epoch_abr: "BAE",
        after_epoch_abr: "AE",
    }),
    common_clock: Some(CommonClockDictionary {
        am_full: "Ante Meridiem",
        pm_full: "Post Meridiem",
        am_abr: "AM",
        pm_abr: "PM",
    }),
    coptic: Some(CopticDictionary {
        thoout: "Thoout",
        paope: "Paope",
        athor: "Athor",
        koiak: "Koiak",
        tobe: "Tobe",
        meshir: "Meshir",
        paremotep: "Paremotep",
        parmoute: "Parmoute",
        pashons: "Pashons",
        paone: "Paone",
        epep: "Epep",
        mesore: "Mesore",
        epagomene: "Epagomene",
        before_martyrs_full: "Before Diocletian", //TODO: find the correct one
        after_martyrs_full: "Anno Martyrum",
        before_martyrs_abr: "BD", //TODO: find the correct one
        after_martyrs_abr: "AM",
    }),
    cotsworth: Some(CotsworthDictionary {
        january: "January",
        february: "February",
        march: "March",
        april: "April",
        may: "May",
        june: "June",
        sol: "Sol",
        july: "July",
        august: "August",
        september: "September",
        october: "October",
        november: "November",
        december: "December",
        //Epoch
        before_epoch_full: "Before Cotsworth Era",
        after_epoch_full: "Cotsworth Era",
        before_epoch_abr: "BCE",
        after_epoch_abr: "CE",
        //Intercalary Days
        year_day: "Year Day",
        leap_day: "Leap Day",
    }),
    egyptian: Some(EgyptianDictionary {
        thoth: "Thoth",
        phaophi: "Phaophi",
        athyr: "Athyr",
        choiak: "Choiak",
        tybi: "Tybi",
        mechir: "Mechir",
        phamenoth: "Phamenoth",
        pharmuthi: "Pharmuthi",
        pachon: "Pachon",
        payni: "Payni",
        epiphi: "Epiphi",
        mesori: "Mesori",
        epagomenae: "Epagomenae",
        before_nabonassar_full: "Before Nabonassar Era",
        after_nabonassar_full: "Nabonassar Era",
        before_nabonassar_abr: "BNE",
        after_nabonassar_abr: "NE",
        // https://helda.helsinki.fi/server/api/core/bitstreams/4ed34849-903b-416b-97d6-a9a76eb1fb1d/content
        birth_of_osiris: "Birth of Osiris",
        birth_of_horus: "Birth of Horus",
        birth_of_seth: "Birth of Seth",
        birth_of_isis: "Birth of Isis",
        birth_of_nephthys: "Birth of Nephthys",
    }),
    ethiopic: Some(EthiopicDictionary {
        maskaram: "Mäskäräm",
        teqemt: "Ṭəqəmt",
        hedar: "Ḫədar",
        takhsas: "Taḫśaś",
        ter: "Ṭərr",
        yakatit: "Yäkatit",
        magabit: "Mägabit",
        miyazya: "Miyazya",
        genbot: "Gənbo",
        sane: "Säne",
        hamle: "Ḥamle",
        nahase: "Nähase",
        paguemen: "Ṗagʷəmen",
        before_incarnation_full: "Before Incarnation Era",
        after_incarnation_full: "Incarnation Era",
        before_incarnation_abr: "BIE",
        after_incarnation_abr: "IE",
    }),
    french_rev: Some(FrenchRevolutionaryDictionary {
        //People love to mention that in Britain, somebody called the months:
        //> Wheezy, Sneezy, and Freezy
        //> Slippy, Drippy, and Nippy
        //> Showery, Flowery, and Bowery
        //> Hoppy, Croppy, and Poppy.
        //(
        //  one source for this:
        //  Clavis Calendaria: Or, A Compendious Analysis of the Calendar, Volume 1
        //  by John Brady
        //)
        //Another suggestion (from The French Revolution: A History by Thomas Carlyle):
        //> Vintagearious, Fogarious, Frostarious,
        //> Snowous, Rainous, Windous,
        //> Buddal, Floweral, Meadowal,
        //> Reapidor, Heatidor, and Fruitidor
        //Unfortunately, actually using such names here would create too much confusion.
        vendemiaire: "Vendémiaire",
        brumaire: "Brumaire",
        frimaire: "Frimaire",
        nivose: "Nivôse",
        pluviose: "Pluviôse",
        ventose: "Ventôse",
        germinal: "Germinal",
        floreal: "Floréal",
        prairial: "Prairial",
        messidor: "Messidor",
        thermidor: "Thermidor",
        fructidor: "Fructidor",
        primidi: "Primidi",
        duodi: "Duodi",
        tridi: "Tridi",
        quartidi: "Quartidi",
        quintidi: "Quintidi",
        sextidi: "Sextidi",
        septidi: "Septidi",
        octidi: "Octidi",
        nonidi: "Nonidi",
        decadi: "Décadi",
        fete_de_la_vertu: "Celebration of Virtue",
        fete_du_genie: "Celebration of Talent",
        fete_du_travail: "Celebration of Labor",
        fete_de_lopinion: "Celebration of Convictions",
        fete_des_recompenses: "Celebration of Honours",
        fete_de_la_revolution: "Celebration of the Revolution",
        before_republic_full: "Before Republican Era",
        after_republic_full: "Republican Era",
        before_republic_abr: "BRE",
        after_republic_abr: "RE",
    }),
    gregorian: Some(GregorianDictionary {
        january: "January",
        february: "February",
        march: "March",
        april: "April",
        may: "May",
        june: "June",
        july: "July",
        august: "August",
        september: "September",
        october: "October",
        november: "November",
        december: "December",
        //Epoch
        before_common_era_full: "Before Common Era",
        common_era_full: "Common Era",
        before_common_era_abr: "BCE",
        common_era_abr: "CE",
    }),
    holocene: Some(HoloceneDictionary {
        january: "January",
        february: "February",
        march: "March",
        april: "April",
        may: "May",
        june: "June",
        july: "July",
        august: "August",
        september: "September",
        october: "October",
        november: "November",
        december: "December",
        //Epoch
        before_human_era_full: "Before Human Era",
        human_era_full: "Human Era",
        before_human_era_abr: "BHE",
        human_era_abr: "HE",
    }),
    iso: Some(ISODictionary {
        before_epoch_full: "Before ISO Era", //TODO: what to call this?
        after_epoch_full: "ISO Era",         //TODO: And this??
        before_epoch_abr: "BIE",             //TODO: And this???
        after_epoch_abr: "IE",               //TODO: And this????
    }),
    julian: Some(JulianDictionary {
        january: "January",
        february: "February",
        march: "March",
        april: "April",
        may: "May",
        june: "June",
        july: "July",
        august: "August",
        september: "September",
        october: "October",
        november: "November",
        december: "December",
        //Epoch
        before_christ_full: "Before Christ",
        anno_domini_full: "Anno Domini",
        before_christ_abr: "BC",
        anno_domini_abr: "AD",
    }),
    positivist: Some(PositivistDictionary {
        moses: "Moses",
        homer: "Homer",
        aristotle: "Aristotle",
        archimedes: "Archimedes",
        caesar: "Caesar",
        saint_paul: "Saint_paul",
        charlemagne: "Charlemagne",
        dante: "Dante",
        gutenburg: "Gutenburg",
        shakespeare: "Shakespeare",
        descartes: "Descartes",
        frederick: "Frederick",
        bichat: "Bichat",
        before_crisis_full: "Before the Great Crisis",
        after_crisis_full: "After the Great Crisis",
        before_crisis_abr: "BGC",
        after_crisis_abr: "AGC",
        festival_of_dead: "Festival of the Dead",
        festival_of_holy_women: "Festival of Holy Women",
    }),
    roman: Some(RomanDictionary {
        //https://www.reddit.com/r/AskHistorians/comments/hhtz06/how_did_romans_describe_dates_before_the_founding/
        //Seems like the Romans didn't bother using AUC for dates before Rome's founding
        kalends: "Kalends",
        nones: "Nones",
        ides: "Ides",
        january: "January",
        february: "February",
        march: "March",
        april: "April",
        may: "May",
        june: "June",
        july: "July",
        august: "August",
        september: "September",
        october: "October",
        november: "November",
        december: "December",
        before_christ_full: "Before Christ",
        anno_domini_full: "Anno Domini",
        before_christ_abr: "BC",
        anno_domini_abr: "AD",
        before_auc_full: "Before the Founding of the City", //TODO: Not culturally/historically accurate
        after_auc_full: "Ab urbe condita",
        before_auc_abr: "BFC", //TODO: Not culturally/historically accurate
        after_auc_abr: "AUC",
        pridie: "pridie",
        ante_diem: "ante diem",
        bissextum: "bissextum",
        x_of_y: "of", //TODO: more robust system than inserting "of"
    }),
    symmetry: Some(SymmetryDictionary {
        january: "January",
        february: "February",
        march: "March",
        april: "April",
        may: "May",
        june: "June",
        july: "July",
        august: "August",
        september: "September",
        october: "October",
        november: "November",
        december: "December",
        irvember: "Irvember",
        before_epoch_full: "Before Symmetric Era", //TODO: Proper names
        after_epoch_full: "Symmetric Era",
        before_epoch_abr: "BSE",
        after_epoch_abr: "SE",
    }),
    tranquility: Some(TranquilityDictionary {
        archimedes: "Archimedes",
        brahe: "Brahe",
        copernicus: "Copernicus",
        darwin: "Darwin",
        einstein: "Einstein",
        faraday: "Faraday",
        galileo: "Galileo",
        hippocrates: "Hippocrates",
        imhotep: "Imhotep",
        jung: "Jung",
        kepler: "Kepler",
        lavoisier: "Lavoisier",
        mendel: "Mendel",
        before_tranquility_full: "Before Tranquility",
        after_tranquility_full: "After Tranquility",
        before_tranquility_abr: "BT",
        after_tranquility_abr: "AT",
        moon_landing_day: "Moon Landing Day",
        armstrong_day: "Armstrong Day",
        aldrin_day: "Aldrin Day",
    }),
    common_weekday: Some(CommonWeekdayDictionary {
        sunday: "Sunday",
        monday: "Monday",
        tuesday: "Tuesday",
        wednesday: "Wednesday",
        thursday: "Thursday",
        friday: "Friday",
        saturday: "Saturday",
    }),
};