﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/sw.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sw.xml
 */
sw{
    Countries{
        001{"Dunia"}
        002{"Afrika"}
        003{"Amerika Kaskazini"}
        005{"Amerika Kusini"}
        009{"Oceania"}
        011{"Afrika ya Magharibi"}
        013{"Amerika ya Kati"}
        014{"Afrika ya Mashariki"}
        015{"Afrika ya Kaskazini"}
        017{"Afrika ya Kati"}
        018{"Afrika ya Kusini"}
        019{"Amerika"}
        021{"Amerika ya Kaskazini"}
        029{"Karibi"}
        030{"Asia Mashariki"}
        034{"Asia ya Kusini"}
        035{"Asia ya Kusini Mashariki"}
        039{"Ulaya ya Kusini"}
        053{"Australasia"}
        054{"Melanesia"}
        057{"Eneo la Mikronesia"}
        061{"Polynesia"}
        142{"Asia"}
        143{"Asia ya Kati"}
        145{"Asia ya Magharibi"}
        150{"Ulaya"}
        151{"Ulaya ya Mashariki"}
        154{"Ulaya ya Kaskazini"}
        155{"Ulaya ya Magharibi"}
        419{"Amerika ya Kilatini"}
        AC{"Kisiwa cha Ascension"}
        AD{"Andora"}
        AE{"Falme za Kiarabu"}
        AF{"Afuganistani"}
        AG{"Antigua na Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Antili za Uholanzi"}
        AO{"Angola"}
        AQ{"Antaktika"}
        AR{"Ajentina"}
        AS{"Samoa ya Marekani"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Visiwa vya Alandi"}
        AZ{"Azabajani"}
        BA{"Bosnia na Hezegovina"}
        BB{"Babadosi"}
        BD{"Bangladeshi"}
        BE{"Ubelgiji"}
        BF{"Bukinafaso"}
        BG{"Bulgaria"}
        BH{"Bahareni"}
        BI{"Burundi"}
        BJ{"Benini"}
        BL{"Santabathelemi"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BQ{"Uholanzi ya Karibiani"}
        BR{"Brazili"}
        BS{"Bahama"}
        BT{"Butani"}
        BV{"Kisiwa cha Bouvet"}
        BW{"Botswana"}
        BY{"Belarusi"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Visiwa vya Cocos [Keeling]"}
        CD{"Jamhuri ya Kidemokrasia ya Kongo"}
        CF{"Jamhuri ya Afrika ya Kati"}
        CG{"Kongo"}
        CH{"Uswisi"}
        CI{"Kodivaa"}
        CK{"Visiwa vya Cook"}
        CL{"Chile"}
        CM{"Kameruni"}
        CN{"China"}
        CO{"Kolombia"}
        CP{"Kisiwa cha Clipperton"}
        CR{"Kostarika"}
        CU{"Kuba"}
        CV{"Kepuvede"}
        CW{"Kurakao"}
        CX{"Kisiwa cha Krismasi"}
        CY{"Kuprosi"}
        CZ{"Jamhuri ya Cheki"}
        DE{"Ujerumani"}
        DG{"Diego Garcia"}
        DJ{"Jibuti"}
        DK{"Denmaki"}
        DM{"Dominika"}
        DO{"Jamhuri ya Dominika"}
        DZ{"Aljeria"}
        EA{"Ceuta na Melilla"}
        EC{"Ekwado"}
        EE{"Estonia"}
        EG{"Misri"}
        EH{"Sahara Magharibi"}
        ER{"Eritrea"}
        ES{"Hispania"}
        ET{"Uhabeshi"}
        EU{"Umoja wa Ulaya"}
        FI{"Ufini"}
        FJ{"Fiji"}
        FK{"Visiwa vya Falkland"}
        FM{"Mikronesia"}
        FO{"Visiwa vya Faroe"}
        FR{"Ufaransa"}
        GA{"Gaboni"}
        GB{"Uingereza"}
        GD{"Grenada"}
        GE{"Jojia"}
        GF{"Gwiyana ya Ufaransa"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Jibralta"}
        GL{"Grinlandi"}
        GM{"Gambia"}
        GN{"Gine"}
        GP{"Gwadelupe"}
        GQ{"Ginekweta"}
        GR{"Ugiriki"}
        GS{"Jojia Kusini na Visiwa vya Sandwich Kusini"}
        GT{"Gwatemala"}
        GU{"Gwam"}
        GW{"Ginebisau"}
        GY{"Guyana"}
        HK{"Hong Kong SAR China"}
        HM{"Kisiwa cha Heard na Visiwa vya McDonald"}
        HN{"Hondurasi"}
        HR{"Korasia"}
        HT{"Haiti"}
        HU{"Hungaria"}
        IC{"Visiwa vya Kanari"}
        ID{"Indonesia"}
        IE{"Ayalandi"}
        IL{"Israeli"}
        IM{"Isle of Man"}
        IN{"India"}
        IO{"Eneo la Uingereza katika Bahari Hindi"}
        IQ{"Iraki"}
        IR{"Uajemi"}
        IS{"Aislandi"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Jamaika"}
        JO{"Yordani"}
        JP{"Japani"}
        KE{"Kenya"}
        KG{"Kirigizistani"}
        KH{"Kambodia"}
        KI{"Kiribati"}
        KM{"Komoro"}
        KN{"Santakitzi na Nevis"}
        KP{"Korea Kaskazini"}
        KR{"Korea Kusini"}
        KW{"Kuwaiti"}
        KY{"Visiwa vya Kayman"}
        KZ{"Kazakistani"}
        LA{"Laosi"}
        LB{"Lebanoni"}
        LC{"Santalusia"}
        LI{"Lishenteni"}
        LK{"Sirilanka"}
        LR{"Liberia"}
        LS{"Lesoto"}
        LT{"Litwania"}
        LU{"Lasembagi"}
        LV{"Lativia"}
        LY{"Libya"}
        MA{"Moroko"}
        MC{"Monako"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"Saint Martin"}
        MG{"Bukini"}
        MH{"Visiwa vya Marshal"}
        MK{"Masedonia"}
        ML{"Mali"}
        MM{"Myama"}
        MN{"Mongolia"}
        MO{"Macau SAR China"}
        MP{"Visiwa vya Mariana vya Kaskazini"}
        MQ{"Martiniki"}
        MR{"Moritania"}
        MS{"Montserrati"}
        MT{"Malta"}
        MU{"Morisi"}
        MV{"Modivu"}
        MW{"Malawi"}
        MX{"Meksiko"}
        MY{"Malesia"}
        MZ{"Msumbiji"}
        NA{"Namibia"}
        NC{"Nyukaledonia"}
        NE{"Nijeri"}
        NF{"Kisiwa cha Norfok"}
        NG{"Nijeria"}
        NI{"Nikaragwa"}
        NL{"Uholanzi"}
        NO{"Norwe"}
        NP{"Nepali"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nyuzilandi"}
        OM{"Omani"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polinesia ya Ufaransa"}
        PG{"Papua"}
        PH{"Filipino"}
        PK{"Pakistani"}
        PL{"Polandi"}
        PM{"Santapieri na Mikeloni"}
        PN{"Pitkairni"}
        PR{"Pwetoriko"}
        PS{"Ukingo wa Magharibi na Ukanda wa Gaza wa Palestina"}
        PT{"Ureno"}
        PW{"Palau"}
        PY{"Paragwai"}
        QA{"Katari"}
        QO{"Oceania ya Nje"}
        RE{"Riyunioni"}
        RO{"Romania"}
        RS{"Serbia"}
        RU{"Urusi"}
        RW{"Rwanda"}
        SA{"Saudi"}
        SB{"Visiwa vya Solomon"}
        SC{"Shelisheli"}
        SD{"Sudani"}
        SE{"Uswidi"}
        SG{"Singapoo"}
        SH{"Santahelena"}
        SI{"Slovenia"}
        SJ{"Svalbard na Jan Mayen"}
        SK{"Slovakia"}
        SL{"Siera Leoni"}
        SM{"Samarino"}
        SN{"Senegali"}
        SO{"Somalia"}
        SR{"Surinamu"}
        SS{"Sudani Kusini"}
        ST{"Sao Tome na Principe"}
        SV{"Elsavado"}
        SX{"Santamatini"}
        SY{"Siria"}
        SZ{"Uswazi"}
        TA{"Tristan da Cunha"}
        TC{"Visiwa vya Turki na Kaiko"}
        TD{"Chadi"}
        TF{"Maeneo ya Kusini ya Ufaransa"}
        TG{"Togo"}
        TH{"Tailandi"}
        TJ{"Tajikistani"}
        TK{"Tokelau"}
        TL{"Timori ya Mashariki"}
        TM{"Turukimenistani"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Uturuki"}
        TT{"Trinidad na Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwani"}
        TZ{"Tanzania"}
        UA{"Ukraini"}
        UG{"Uganda"}
        UM{"Visiwa Vidogo vya Nje vya Marekani"}
        US{"Marekani"}
        UY{"Urugwai"}
        UZ{"Uzibekistani"}
        VA{"Vatikani"}
        VC{"Santavisenti na Grenadini"}
        VE{"Venezuela"}
        VG{"Visiwa vya Virgin vya Uingereza"}
        VI{"Visiwa vya Virgin vya Marekani"}
        VN{"Vietinamu"}
        VU{"Vanuatu"}
        WF{"Walis na Futuna"}
        WS{"Samoa"}
        YE{"Yemeni"}
        YT{"Mayotte"}
        ZA{"Afrika Kusini"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Eneo lisilojulikana"}
    }
    Version{"2.0.82.45"}
}
