﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/lg.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/lg.xml
 */
lg{
    Countries{
        AD{"Andora"}
        AE{"Emireeti"}
        AF{"Afaganisitani"}
        AG{"Antigwa ne Barabuda"}
        AI{"Angwila"}
        AL{"Alibaniya"}
        AM{"Arameniya"}
        AN{"Bizinga bya Antile eby'abaHolandi"}
        AO{"Angola"}
        AR{"Arigentina"}
        AS{"Samowa omumerika"}
        AT{"Awusituriya"}
        AU{"Awusitureliya"}
        AW{"Aruba"}
        AZ{"Azerebayijaani"}
        BA{"Boziniya Hezegovina"}
        BB{"Barabadosi"}
        BD{"Bangaladesi"}
        BE{"Bubirigi"}
        BF{"Burukina Faso"}
        BG{"Bulugariya"}
        BH{"Baareeni"}
        BI{"Burundi"}
        BJ{"Benini"}
        BM{"Beremuda"}
        BN{"Burunayi"}
        BO{"Boliviya"}
        BR{"Buraziiri"}
        BS{"Bahamasi"}
        BT{"Butaani"}
        BW{"Botiswana"}
        BY{"Belarusi"}
        BZ{"Belize"}
        CA{"Kanada"}
        CD{"Kongo - Zayire"}
        CF{"Lipubulika eya Senturafiriki"}
        CG{"Kongo"}
        CH{"Switizirandi"}
        CI{"Kote Divwa"}
        CK{"Bizinga bya Kkuki"}
        CL{"Cile"}
        CM{"Kameruuni"}
        CN{"Cayina"}
        CO{"Kolombya"}
        CR{"Kosita Rika"}
        CU{"Cuba"}
        CV{"Bizinga by'e Kepu Veredi"}
        CY{"Sipuriya"}
        CZ{"Lipubulika ya Ceeka"}
        DE{"Budaaki"}
        DJ{"Jjibuti"}
        DK{"Denimaaka"}
        DM{"Dominika"}
        DO{"Lipubulika ya Dominika"}
        DZ{"Aligerya"}
        EC{"Ekwado"}
        EE{"Esitoniya"}
        EG{"Misiri"}
        ER{"Eritureya"}
        ES{"Sipeyini"}
        ET{"Esyopya"}
        FI{"Finilandi"}
        FJ{"Fiji"}
        FK{"Bizinga by'eFalikalandi"}
        FM{"Mikuronezya"}
        FR{"Bufalansa"}
        GA{"Gaboni"}
        GB{"Bungereza"}
        GD{"Gurenada"}
        GE{"Gyogya"}
        GF{"Guyana enfalansa"}
        GH{"Gana"}
        GI{"Giburalita"}
        GL{"Gurenelandi"}
        GM{"Gambya"}
        GN{"Gini"}
        GP{"Gwadalupe"}
        GQ{"Gayana ey'oku ekweta"}
        GR{"Bugereeki/Buyonaani"}
        GT{"Gwatemala"}
        GU{"Gwamu"}
        GW{"Gini-Bisawu"}
        GY{"Gayana"}
        HN{"Hundurasi"}
        HR{"Kurowesya"}
        HT{"Hayiti"}
        HU{"Hangare"}
        ID{"Yindonezya"}
        IE{"Ayalandi"}
        IL{"Yisirayeri"}
        IN{"Buyindi"}
        IO{"Bizinga by'eCago"}
        IQ{"Yiraaka"}
        IR{"Yiraani"}
        IS{"Ayisirandi"}
        IT{"Yitale"}
        JM{"Jamayika"}
        JO{"Yorodani"}
        JP{"Japani"}
        KE{"Kenya"}
        KG{"Kirigizisitaani"}
        KH{"Kambodya"}
        KI{"Kiribati"}
        KM{"Bizinga by'eKomoro"}
        KN{"Senti Kitisi ne Nevisi"}
        KP{"Koreya ey'omumambuka"}
        KR{"Koreya ey'omumaserengeta"}
        KW{"Kuweti"}
        KY{"Bizinga ebya Kayimaani"}
        KZ{"Kazakisitaani"}
        LA{"Lawosi"}
        LB{"Lebanoni"}
        LC{"Senti Luciya"}
        LI{"Licitensitayini"}
        LK{"Sirilanka"}
        LR{"Liberya"}
        LS{"Lesoso"}
        LT{"Lisuwenya"}
        LU{"Lukisembaaga"}
        LV{"Lativya"}
        LY{"Libya"}
        MA{"Moroko"}
        MC{"Monako"}
        MD{"Molodova"}
        MG{"Madagasika"}
        MH{"Bizinga bya Mariso"}
        MK{"Masedoniya"}
        ML{"Mali"}
        MM{"Myanima"}
        MN{"Mongoliya"}
        MP{"Bizinga bya Mariyana eby'omumambuka"}
        MQ{"Maritiniiki"}
        MR{"Mawulitenya"}
        MS{"Monteseraati"}
        MT{"Malita"}
        MU{"Mawulisyasi"}
        MV{"Bizinga by'eMalidive"}
        MW{"Malawi"}
        MX{"Mekisiko"}
        MY{"Malezya"}
        MZ{"Mozambiiki"}
        NA{"Namibiya"}
        NC{"Kaledonya mupya"}
        NE{"Nije"}
        NF{"Kizinga ky'eNorofoko"}
        NG{"Nayijerya"}
        NI{"Nikaraguwa"}
        NL{"Holandi"}
        NO{"Nowe"}
        NP{"Nepalo"}
        NR{"Nawuru"}
        NU{"Niyuwe"}
        NZ{"Niyuziirandi"}
        OM{"Omaani"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polinesiya enfalansa"}
        PG{"Papwa Nyugini"}
        PH{"Bizinga bya Firipino"}
        PK{"Pakisitaani"}
        PL{"Polandi"}
        PM{"Senti Piyere ne Mikeloni"}
        PN{"Pitikeeni"}
        PR{"Potoriko"}
        PS{"Palesitayini"}
        PT{"Potugaali"}
        PW{"Palawu"}
        PY{"Paragwayi"}
        QA{"Kataa"}
        RE{"Leyunyoni"}
        RO{"Lomaniya"}
        RU{"Lasa"}
        RW{"Rwanda"}
        SA{"Sawudarebya - Buwarabu"}
        SB{"Bizanga by'eSolomooni"}
        SC{"Sesere"}
        SD{"Sudaani"}
        SE{"Swideni"}
        SG{"Singapowa"}
        SH{"Senti Herena"}
        SI{"Sirovenya"}
        SK{"Sirovakya"}
        SL{"Siyeralewone"}
        SM{"Sanimarino"}
        SN{"Senegaalo"}
        SO{"Somaliya"}
        SR{"Surinaamu"}
        ST{"Sanitome ne Purincipe"}
        SV{"El salivado"}
        SY{"Siriya"}
        SZ{"Swazirandi"}
        TC{"Bizinga by'eTaaka ne Kayikosi"}
        TD{"Caadi"}
        TG{"Togo"}
        TH{"Tayirandi"}
        TJ{"Tajikisitaani"}
        TK{"Tokelawu"}
        TL{"Timowa"}
        TM{"Takimenesitaani"}
        TN{"Tunisya"}
        TO{"Tonga"}
        TR{"Ttake"}
        TT{"Turindaadi ne Tobago"}
        TV{"Tuvalu"}
        TW{"Tayiwani"}
        TZ{"Tanzaniya"}
        UA{"Yukurayine"}
        UG{"Yuganda"}
        US{"Amerika"}
        UY{"Wurugwayi"}
        UZ{"Wuzibekisitaani"}
        VA{"Vatikaani"}
        VC{"Senti Vinsenti ne Gurendadiini"}
        VE{"Venzwera"}
        VG{"Bizinga ebya Virigini ebitwalibwa Bungereza"}
        VI{"Bizinga bya Virigini eby'Amerika"}
        VN{"Vyetinaamu"}
        VU{"Vanawuwatu"}
        WF{"Walisi ne Futuna"}
        WS{"Samowa"}
        YE{"Yemeni"}
        YT{"Mayotte"}
        ZA{"Sawusafirika"}
        ZM{"Zambya"}
        ZW{"Zimbabwe"}
    }
    Version{"2.0.92.87"}
}
