// ***************************************************************************
// *
// *   Copyright (C) 2001-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
// * Somali language locale.
// * Contributed by :
// *    Daniel Yacob <yacob@geez.org>, Ge'ez Frontier Foundation
// *    Mohamed Diriye Abdullahi <diriyeam@magellan.umontreal.ca>
// *    Department of Linguistics and Translation, Universite de Montreal, Montreal

so{ 
    Version{ "2.0" }
    AmPmMarkers {
        "sn",
        "gn",
    }
    Countries { 
        AE { "Imaaraadka Carabta ee Midoobay" }
        AF { "Afgaanistaan" }
        AM { "Armeeniya" }
        AO { "Angoola" }
        AT { "Osteeriya" }
        AU { "Awstraaliya" }

        BA { "Boosniya Heersigoviina" }
        BB { "Baarbadoos" }
        BD { "Bangaala-Deesh" }
        BE { "Beljiyam" }
        BH { "Baxrayn" }
        BJ { "Beniin" }
        BR { "Braasiil" }

        CA { "Kanada" }
        CH { "Swiiserlaand" }
        CL { "Jili" }
        CM { "Kameruun" }
        CN { "Shiinaha" }
        CU { "Kuuba" }

        DE { "Jarmal" }
        DJ { "Jabuuti" }
        DK { "Danmaark" }

        EG { "Masar" }
        ES { "Isbeyn" }
        ET { "Itoobiya" }

        FI { "Fiinlaand" }
        FR { "Faransiis" }

        GD { "Giriinaada" }
        GN { "Gini" }
        GR { "Giriigga" }

        HR { "Korweeshiya" }
        HU { "Hangeri" }

        ID { "Indoneesiya" }
        IE { "Ayrlaanda" }
        IL { "Israa'iil" }
        IN { "Hindiya" }
        IQ { "Ciraaq" }
        IR { "Iiraan" }
        IS { "Iislaand" }
        IT { "Talyaani" }

        JM { "Jameyka" }
        JO { "Urdun" }
        JP { "Jabbaan" }

        KE { "Kiiniya" }
        KH { "Kamboodiya" }
        KP { "Kuuriyada Waqooyi" }
        KR { "Kuuriyada Koonfureed" }
        KW { "Kuwayt" }
        KZ { "Kasaakhistaan" }

        LB { "Lubnaan" }
        LK { "Siirilaanka" }
        LR { "Laybeeriya" }
        LS { "Losooto" }
        LU { "Luksemboorg" }
        LV { "Laatfiya" }
        LY { "Liibiya" }

        MA { "Marooko" }
        MC { "Moonako" }
        MK { "Makadooniya" }
        ML { "Maali" }
        MR { "Muritaaniya" }
        MT { "Maalda" }
        MV { "Maaldiqeen" }
        MW { "Malaawi" }
        MX { "Meksiko" }
        MZ { "Musambiig" }

        NA { "Namiibiya" }
        NG { "Nayjeeriya" }
        NI { "Nikaraaguwa" }
        NO { "Noorweey" }
        NZ { "Neyuusilaand" }

        OM { "Cumaan" }

        PH { "Filibiin" }
        PK { "Bakistaan" }
        PL { "Booland" }
        PT { "Bortuqaal" }

        QA { "Qadar" }

        RO { "Rumaaniya" }
        RU { "Ruush" }

        SA { "Sacuudi Carabiya" }
        SD { "Sudaan" }
        SE { "Iswidhan" }
        SL { "Siraaliyoon" }
        SO { "Soomaaliya" }
        SY { "Suuriya" }

        TD { "Jaad" }
        TG { "Toogo" }
        TH { "Taylaand" }
        TN { "Tuniisiya" }
        TR { "Turki" }
        TZ { "Tansaaniya" }

        UG { "Ugaanda" }
        US { "Qaramada Midoobey ee Maraykanka" }

        VA { "Faatikaan" }
        VE { "Fenisuweela" }
        VN { "Fiyetnaam" }

        YE { "Yaman" }

        ZA { "Koonfur Afrika" }
        ZM { "Saambiya" }
        ZW { "Simbaabwe" }
    }
    Currencies {
        KES { "Ksh", "KES" }
    }
    DateTimeElements:intvector { 
        7,
        1,
    }
    DateTimePatterns { 
        "h:mm:ss a",
        "h:mm:ss a",
        "h:mm:ss a",
        "h:mm a",
        "EEEE, MMMM dd, yyyy",
        "dd MMMM yyyy",
        "dd-MMM-yyyy",
        "dd/MM/yy",
        "{1} {0}",
    }
    DayAbbreviations {
        "Axa",
        "Isn",
        "Sal",
        "Arb",
        "Kha",
        "Jim",
        "Sab",
    }
    DayNames {
        "Axad",
        "Isniin",
        "Salaaso",
        "Arbaco",
        "Khamiis",
        "Jimco",
        "Sabti",
    }
    Eras { 
        "Ciise ka hor",
        "Ciise ka dib"
    }
    ExemplarCharacters { "[a-z]" }
    LocaleScript:array{ 
       "Latn",  // ISO 15924 Name 
    }
    Languages { 
        so { "Soomaali" }
    }
    MonthAbbreviations {
        "Kob",
        "Lab",
        "Sad",
        "Afr",
        "Sha",
        "Lix",
        "Tod",
        "Sid",
        "Sag",
        "Tob",
        "KIT",
        "LIT",
    }
    MonthNames {
        "Bisha Koobaad",
        "Bisha Labaad",
        "Bisha Saddexaad",
        "Bisha Afraad",
        "Bisha Shanaad",
        "Bisha Lixaad",
        "Bisha Todobaad",
        "Bisha Sideedaad",
        "Bisha Sagaalaad",
        "Bisha Tobnaad",
        "Bisha Kow iyo Tobnaad",
        "Bisha Laba iyo Tobnaad",
    }
}


