﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/so.xml
// *
// ***************************************************************************
/**
 *  ICU <specials > source: <path>/xml/main/so.xml
 */
so{
    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"}
        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"}
        ZZ{"Far aan la aqoon amase aan saxnayn"}
    }
    ExemplarCharacters{"[a-z]"}
    Languages{
        ar{"Carabi"}
        de{"Jarmal"}
        es{"Isbaanish"}
        fa{"Faarisi"}
        fr{"Faransiis"}
        fy{"Firiisiyan Galbeed"}
        it{"Talyaani"}
        so{"Soomaali"}
    }
    LocaleScript{
        "Latn",
    }
    NumberElements{
        ".",
        ",",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "¤#,##0.00",
        "#,##0%",
        "#E0",
    }
    Scripts{
        Zxxx{"Aan la qorin"}
        Zzzz{"Far aan la aqoon amase aan saxnayn"}
    }
    Version{"2.0.42.82"}
    calendar{
        gregorian{
            AmPmMarkers{
                "sn",
                "gn",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, MMMM dd, y",
                "dd MMMM y",
                "dd-MMM-y",
                "dd/MM/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "Axa",
                        "Isn",
                        "Sal",
                        "Arb",
                        "Kha",
                        "Jim",
                        "Sab",
                    }
                    wide{
                        "Axad",
                        "Isniin",
                        "Salaaso",
                        "Arbaco",
                        "Khamiis",
                        "Jimco",
                        "Sabti",
                    }
                }
            }
            eras{
                abbreviated{
                    "Ciise ka hor",
                    "Ciise ka dib",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Kob",
                        "Lab",
                        "Sad",
                        "Afr",
                        "Sha",
                        "Lix",
                        "Tod",
                        "Sid",
                        "Sag",
                        "Tob",
                        "KIT",
                        "LIT",
                    }
                    wide{
                        "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",
                    }
                }
            }
        }
    }
    zoneStrings{
        "Etc:Unknown"{
            ec{"Far aan la aqoon amase aan saxnayn"}
        }
    }
}
