// *******************************************************************************
// *
// *   Copyright (C) 2001-2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************
// * Oromo language locale.
// * Contributed by Daniel Yacob <yacob@geez.org>
// *
// * Oromo terms are provided by Mahdi Hamid Muudee of Sagalee Oromoo
// * Publishing Co. Inc and formatted in Posix format locale by Daniel Yacob of
// * the Ge'ez Frontier Foundation.  The Oromo language terms used here
// * are those considered to be canonical in the Oromo language under
// * contemporary and progressive usage adopted by government bureaus
// * across the Oromo region.  Regional synonyms naturally exist for many
// * of the month and day names.

om{
    Version{ "x0.1" }
    DayAbbreviations {
            "Dil",
            "Wix",
            "Qib",
            "Rob",
            "Kam",
            "Jim",
            "San",
    }
    DayNames {
            "Dilbata",
            "Wiixata",
            "Qibxata",
            "Roobii",
            "Kamiisa",
            "Jimaata",
            "Sanbata",
    }
    LanguageLibraryUse { "orm" }
    MonthAbbreviations {
            "Ama",
            "Gur",
            "Bit",
            "Elb",
            "Cam",
            "Wax",
            "Ado",
            "Hag",
            "Ful",
            "Onk",
            "Sad",
            "Mud",
            "",
    }
    MonthNames {
            "Amajjii",
            "Guraandhala",
            "Bitooteessa",
            "Elba",
            "Caamsa",
            "Waxabajjii",
            "Adooleessa",
            "Hagayya",
            "Fuulbana",
            "Onkololeessa",
            "Sadaasa",
            "Muddee",
            "",
    }
    Eras { 
            "KD",  // KD = Kiristoos Dura = Before Christ
            "KB",  // KB = Kiristoos Booda = After Christ
    }
    Languages { 
        om { "Oromoo" }
    }
    Countries { 
        ET { "Itoophiyaa" }
        KE { "Keeniyaa" }
    }
}
