﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ln.xml
// *
// ***************************************************************************
ln{
    Countries{
        AD{"Andorɛ"}
        AE{"Lɛmila alabo"}
        AF{"Afiganisitá"}
        AG{"Antiga mpé Barbuda"}
        AI{"Angiyɛ"}
        AL{"Alibani"}
        AM{"Amɛni"}
        AN{"Antiyɛ ya Olandɛ"}
        AO{"Angóla"}
        AQ{"Antarctique"}
        AR{"Arizantinɛ"}
        AS{"Samoa ya Ameriki"}
        AT{"Otilisi"}
        AU{"Ositáli"}
        AW{"Aruba"}
        AZ{"Azɛlɛbaizá"}
        BA{"Bosini mpé Hezegovine"}
        BB{"Barɛbadɛ"}
        BD{"Bengalidɛsi"}
        BE{"Beleziki"}
        BF{"Bukina Faso"}
        BG{"Biligari"}
        BH{"Bahrɛnɛ"}
        BI{"Burundi"}
        BJ{"Benɛ"}
        BM{"Bermuda"}
        BN{"Brineyi"}
        BO{"Bolivi"}
        BR{"Brezílɛ"}
        BS{"Bahamasɛ"}
        BT{"Butáni"}
        BW{"Botswana"}
        BY{"Byelorisi"}
        BZ{"Belizɛ"}
        CA{"Kanada"}
        CD{"Repibiki demokratiki ya Kongó"}
        CF{"Repibiki ya Afríka ya Káti"}
        CG{"Kongo"}
        CH{"Swisɛ"}
        CI{"Kotídivualɛ"}
        CK{"Bisanga bya Kookɛ"}
        CL{"Síli"}
        CM{"Kamɛrune"}
        CN{"Sinɛ"}
        CO{"Kolombi"}
        CR{"Kositarika"}
        CU{"Kiba"}
        CV{"Bisanga bya Kapevɛrɛ"}
        CY{"Sípɛlɛ"}
        CZ{"Repibiki Tsekɛ"}
        DE{"Alemani"}
        DJ{"Dzibuti"}
        DK{"Danɛmarike"}
        DM{"Domínike"}
        DO{"Repibiki ya Domínikɛ"}
        DZ{"Alizɛri"}
        EC{"Ekwatɛ́lɛ"}
        EE{"Esitoni"}
        EG{"Ezípite"}
        ER{"Elitelɛ"}
        ES{"Esipanye"}
        ET{"Etsíopi"}
        FI{"Filandɛ"}
        FJ{"Fidzi"}
        FK{"Bisanga bya Maluni"}
        FM{"Mikronezi"}
        FR{"Falánsɛ"}
        GA{"Gabɔ"}
        GB{"Angɛlɛtɛ́lɛ"}
        GD{"Gelenadɛ"}
        GE{"Zorzi"}
        GF{"Giyanɛ ya Falánsɛ"}
        GG{"Guernesey"}
        GH{"Gana"}
        GI{"Zibatalɛ"}
        GL{"Gowelande"}
        GM{"Gambi"}
        GN{"Ginɛ"}
        GP{"Gwadɛlupɛ"}
        GQ{"Ginɛ́kwatɛ́lɛ"}
        GR{"Geleki"}
        GS{"Îles de Géorgie du Sud et Sandwich du Sud"}
        GT{"Gwatémala"}
        GU{"Gwamɛ"}
        GW{"Ginɛbisau"}
        GY{"Giyane"}
        HM{"Ile Heard et Iles McDonald"}
        HN{"Ondurasɛ"}
        HR{"Krowasi"}
        HT{"Ayiti"}
        HU{"Ongili"}
        ID{"Indonezi"}
        IE{"Irelandɛ"}
        IL{"Isirayelɛ"}
        IN{"Índɛ"}
        IO{"Mabelé ya Angɛlɛtɛ́lɛ na mbú ya Indiya"}
        IQ{"Iraki"}
        IR{"Irâ"}
        IS{"Isilandɛ"}
        IT{"Itali"}
        JM{"Zamaiki"}
        JO{"Zɔdani"}
        JP{"Zapɔ"}
        KE{"Kenya"}
        KG{"Kigizisitá"}
        KH{"Kambodza"}
        KI{"Kiribati"}
        KM{"Komorɛ"}
        KN{"Sántu krístofe mpé Nevɛ̀s"}
        KP{"Korɛ ya nɔ́rdi"}
        KR{"Korɛ ya súdi"}
        KW{"Koweti"}
        KY{"Bisanga bya Kayíma"}
        KZ{"Kazakisitá"}
        LA{"Lawosi"}
        LB{"Libá"}
        LC{"Sántu lisi"}
        LI{"Lishɛteni"}
        LK{"Sirilanka"}
        LR{"Libériya"}
        LS{"Lesoto"}
        LT{"Litwani"}
        LU{"Likisambulu"}
        LV{"Letoni"}
        LY{"Libí"}
        MA{"Marokɛ"}
        MC{"Monako"}
        MD{"Molidavi"}
        ME{"Monténégro"}
        MG{"Madagasikari"}
        MH{"Bisanga bya Marishalɛ"}
        MK{"Masedwanɛ"}
        ML{"Malí"}
        MM{"Birmanie"}
        MN{"Mongolí"}
        MP{"Bisanga bya Marianɛ ya nɔ́rdi"}
        MQ{"Martiniki"}
        MR{"Moritani"}
        MS{"Mɔsera"}
        MT{"Malitɛ"}
        MU{"Morisɛ"}
        MV{"Madívɛ"}
        MW{"Malawi"}
        MX{"Meksike"}
        MY{"Malezi"}
        MZ{"Mozambíki"}
        NA{"Namibi"}
        NC{"Kaledoni ya sika"}
        NE{"Nizɛrɛ"}
        NF{"Esanga Norfokɛ"}
        NG{"Nizerya"}
        NI{"Nikaragwa"}
        NL{"Olandɛ"}
        NO{"Norivezɛ"}
        NP{"Nepálɛ"}
        NR{"Nauru"}
        NU{"Nyué"}
        NZ{"Zelandɛ ya sika"}
        OM{"Ománɛ"}
        PA{"Panama"}
        PE{"Péru"}
        PF{"Polinezi ya Falánsɛ"}
        PG{"Papwazi Ginɛ ya sika"}
        PH{"Filipinɛ"}
        PK{"Pakisitá"}
        PL{"Poloni"}
        PM{"Sántu pététo mpé Mikelɔ"}
        PN{"Pikairni"}
        PR{"Pɔtoriko"}
        PS{"Palɛsine"}
        PT{"Putúlugɛsi"}
        PW{"Palau"}
        PY{"Palagwei"}
        QA{"Katari"}
        RE{"Lenyo"}
        RO{"Romani"}
        RS{"Serbie"}
        RU{"Risí"}
        RW{"Rwanda"}
        SA{"Alabi Sawuditɛ"}
        SB{"Bisanga Solomɔ"}
        SC{"Sɛshɛlɛ"}
        SD{"Sudá"}
        SE{"Swédɛ"}
        SG{"Singapurɛ"}
        SH{"Sántu eleni"}
        SI{"Siloveni"}
        SK{"Silovaki"}
        SL{"Siera Leonɛ"}
        SM{"Sántu Marinɛ"}
        SN{"Senegalɛ"}
        SO{"Somali"}
        SR{"Surinamɛ"}
        ST{"Sao Tomé mpé Presipɛ"}
        SV{"Savadɔrɛ"}
        SY{"Sirí"}
        SZ{"Swazilandi"}
        TC{"Bisanga bya Turki mpé Kaiko"}
        TD{"Tsádi"}
        TF{"Terres australes et antarctiques françaises"}
        TG{"Togo"}
        TH{"Tailandɛ"}
        TJ{"Tazikisitá"}
        TK{"Tokelau"}
        TL{"Timorɛ ya Moniɛlɛ"}
        TM{"Tikɛménisitá"}
        TN{"Tinizi"}
        TO{"Tonga"}
        TR{"Tiliki"}
        TT{"Tinidadɛ mpé Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwanin"}
        TZ{"Tanzani"}
        UA{"Ikrɛni"}
        UG{"Uganda"}
        US{"Ameriki"}
        UY{"Irigwei"}
        UZ{"Uzibɛkisitá"}
        VA{"Vatiká"}
        VC{"Sántu vesá mpé Gelenadinɛ"}
        VE{"Venézuela"}
        VG{"Bisanga bya Vierzi ya Angɛlɛtɛ́lɛ"}
        VI{"Bisanga bya Vierzi ya Ameriki"}
        VN{"Viyetinamɛ"}
        VU{"Vanuatu"}
        WF{"Walisɛ mpé Futuna"}
        WS{"Samoa"}
        YE{"Yemɛnɛ"}
        YT{"Mayotɛ"}
        ZA{"Afríka ya Súdi"}
        ZM{"Zambi"}
        ZW{"Zimbabwe"}
    }
    Version{"2.1.19.14"}
}
