﻿// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: ../../../locale/common/main/sw.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: ./xml/main/sw.xml
 */
sw{
    Countries{
        AE{"Muugano wa Falme za Nchi za Kiarabu"}
        AG{"Antigua na Barbuda"}
        AR{"Ajentina"}
        BA{"Bosnia na Herzegowina"}
        BE{"Ubelgiji"}
        BR{"Brazili"}
        BS{"Visiwa vya Bahama"}
        CA{"Kanada"}
        CF{"Jamhuri ya Afrika ya Kati"}
        CG{"Kongo"}
        CH{"Uswisi"}
        CI{"Pwani ya Pembe"}
        CM{"Kamerun"}
        CN{"Uchina"}
        CO{"Kolombia"}
        CV{"Rasi Verde"}
        CZ{"Jamhuri ya Czech"}
        DE{"Udachi"}
        DJ{"Jibuti"}
        DK{"Udenmarki"}
        DM{"Dominika"}
        DO{"Jamhuri ya Dominikan"}
        EC{"Ekvado"}
        EG{"Misri"}
        ES{"Uhispania"}
        ET{"Uhabeshi"}
        FR{"Ufaransa"}
        GB{"Uingereza"}
        GQ{"Guinea ya Ikweta"}
        HR{"Kroatia"}
        HU{"Hungaria"}
        IL{"Uyahudi"}
        IN{"Uhindi"}
        IQ{"Iraki"}
        IR{"Uajemi"}
        IS{"Barafu"}
        IT{"Uitaliani"}
        JM{"Jamaika"}
        JP{"Ujapani"}
        KE{"Kenya"}
        KH{"Kampuchea"}
        KM{"Visiwa vya Komoro"}
        KN{"Saint Kitts na Nevis"}
        KP{"Korea ya Kaskazini"}
        KR{"Korea ya Kusini"}
        LU{"Luksemburg"}
        MA{"Moroko"}
        MC{"Monako"}
        MH{"Visiwa vya Marshall"}
        MX{"Meksiko"}
        MY{"Malasya"}
        MZ{"Msumbiji"}
        NI{"Nikaragua"}
        NL{"Uholanzi"}
        NO{"Unorwe"}
        NP{"Nepali"}
        PG{"Papua Guinea Mpya"}
        PH{"Filipino"}
        PT{"Ureno"}
        PY{"Paragwai"}
        RU{"Urusi"}
        SA{"Arabuni Saudi"}
        SB{"Visiwa vya Solomon"}
        SC{"Visiwa vya Shelisheli"}
        SE{"Uswidi"}
        SO{"Somali"}
        ST{"Sao Tome na Principe"}
        TD{"Chadi"}
        TL{"Timor ya Mashariki"}
        TR{"Uturuki"}
        TT{"Trinidad na Tobago"}
        TZ{"Tanzania"}
        US{"Muungano wa Nchi za Amerika"}
        UY{"Urugwai"}
        VA{"Vatikano"}
        VC{"Saint Vincent na Grenadines"}
        YE{"Yemeni"}
        ZA{"Afrika ya Kusini"}
    }
    Currencies{
        KES{
            "KSh",
            "KES",
        }
        TZS{
            "TSh",
            "TZS",
        }
    }
    ExemplarCharacters{"[a-z]"}
    Languages{
        sw{"Kiswahili"}
    }
    LocaleScript{
        "Latn",
    }
    Version{"1.28"}
    calendar{
        gregorian{
            DateTimeElements:intvector{
                7,
                1,
            }
            dayNames{
                format{
                    abbreviated{
                        "Jpi",
                        "Jtt",
                        "Jnn",
                        "Jtn",
                        "Alh",
                        "Iju",
                        "Jmo",
                    }
                    wide{
                        "Jumapili",
                        "Jumatatu",
                        "Jumanne",
                        "Jumatano",
                        "Alhamisi",
                        "Ijumaa",
                        "Jumamosi",
                    }
                }
            }
            eras{
                abbreviated{
                    "KK",
                    "BK",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Ago",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Januari",
                        "Februari",
                        "Machi",
                        "Aprili",
                        "Mei",
                        "Juni",
                        "Julai",
                        "Agosti",
                        "Septemba",
                        "Oktoba",
                        "Novemba",
                        "Desemba",
                    }
                }
            }
        }
    }
    zoneStrings{
        {
            "Africa/Nairobi",
            "Saa za Africa Mashariki",
            "EAT",
            "Saa za Africa Mashariki",
            "EAT",
            "Nairobi",
        }
    }
}
