﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/rn.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/rn.xml
 */
rn{
    Countries{
        AD{"Andora"}
        AE{"Leta Zunze Ubumwe z'Abarabu"}
        AF{"Afuganisitani"}
        AG{"Antigwa na Baribuda"}
        AI{"Angwila"}
        AL{"Alubaniya"}
        AM{"Arumeniya"}
        AN{"Antiye y'Abaholandi"}
        AO{"Angola"}
        AR{"Arijantine"}
        AS{"Samowa nyamerika"}
        AT{"Otirishe"}
        AU{"Ositaraliya"}
        AW{"Aruba"}
        AZ{"Azerubayijani"}
        BA{"Bosiniya na Herigozevine"}
        BB{"Barubadosi"}
        BD{"Bangaladeshi"}
        BE{"Ububiligi"}
        BF{"Burukina Faso"}
        BG{"Buligariya"}
        BH{"Bahareyini"}
        BI{"Uburundi"}
        BJ{"Bene"}
        BM{"Berimuda"}
        BN{"Buruneyi"}
        BO{"Boliviya"}
        BR{"Burezili"}
        BS{"Bahamasi"}
        BT{"Butani"}
        BW{"Botswana"}
        BY{"Belausi"}
        BZ{"Belize"}
        CA{"Kanada"}
        CD{"Repubulika Iharanira Demokarasi ya Kongo"}
        CF{"Repubulika ya Santarafurika"}
        CG{"Kongo"}
        CH{"Ubusuwisi"}
        CI{"Kotedivuware"}
        CK{"Izinga rya Kuku"}
        CL{"Shili"}
        CM{"Kameruni"}
        CN{"Ubushinwa"}
        CO{"Kolombiya"}
        CR{"Kositarika"}
        CU{"Kiba"}
        CV{"Ibirwa bya Kapuveri"}
        CY{"Izinga rya Shipure"}
        CZ{"Repubulika ya Ceke"}
        DE{"Ubudage"}
        DJ{"Jibuti"}
        DK{"Danimariki"}
        DM{"Dominika"}
        DO{"Repubulika ya Dominika"}
        DZ{"Alijeriya"}
        EC{"Ekwateri"}
        EE{"Esitoniya"}
        EG{"Misiri"}
        ER{"Elitereya"}
        ES{"Hisipaniya"}
        ET{"Etiyopiya"}
        FI{"Finilandi"}
        FJ{"Fiji"}
        FK{"Izinga rya Filikilandi"}
        FM{"Mikoroniziya"}
        FR{"Ubufaransa"}
        GA{"Gabo"}
        GB{"Ubwongereza"}
        GD{"Gerenada"}
        GE{"Jeworujiya"}
        GF{"Gwayana y'Abafaransa"}
        GH{"Gana"}
        GI{"Juburalitari"}
        GL{"Gurunilandi"}
        GM{"Gambiya"}
        GN{"Guneya"}
        GP{"Gwadelupe"}
        GQ{"Gineya Ekwatoriyali"}
        GR{"Ubugereki"}
        GT{"Gwatemala"}
        GU{"Gwamu"}
        GW{"Gineya Bisawu"}
        GY{"Guyane"}
        HN{"Hondurasi"}
        HR{"Korowasiya"}
        HT{"Hayiti"}
        HU{"Hungariya"}
        ID{"Indoneziya"}
        IE{"Irilandi"}
        IL{"Isiraheli"}
        IN{"Ubuhindi"}
        IO{"Intara y'Ubwongereza yo mu birwa by'Abahindi"}
        IQ{"Iraki"}
        IR{"Irani"}
        IS{"Ayisilandi"}
        IT{"Ubutaliyani"}
        JM{"Jamayika"}
        JO{"Yorudaniya"}
        JP{"Ubuyapani"}
        KE{"Kenya"}
        KG{"Kirigisitani"}
        KH{"Kamboje"}
        KI{"Kiribati"}
        KM{"Izinga rya Komore"}
        KN{"Sekitsi na Nevisi"}
        KP{"Koreya y'amajaruguru"}
        KR{"Koreya y'amajepfo"}
        KW{"Koweti"}
        KY{"Ibirwa bya Keyimani"}
        KZ{"Kazakisitani"}
        LA{"Layosi"}
        LB{"Libani"}
        LC{"Selusiya"}
        LI{"Lishyitenshitayini"}
        LK{"Sirilanka"}
        LR{"Liberiya"}
        LS{"Lesoto"}
        LT{"Lituwaniya"}
        LU{"Lukusamburu"}
        LV{"Lativa"}
        LY{"Libiya"}
        MA{"Maroke"}
        MC{"Monako"}
        MD{"Moludavi"}
        MG{"Madagasikari"}
        MH{"Izinga rya Marishari"}
        MK{"Masedoniya"}
        ML{"Mali"}
        MM{"Birimaniya"}
        MN{"Mongoliya"}
        MP{"Amazinga ya Mariyana ryo mu majaruguru"}
        MQ{"Maritiniki"}
        MR{"Moritaniya"}
        MS{"Monteserati"}
        MT{"Malita"}
        MU{"Izinga rya Morise"}
        MV{"Moludave"}
        MW{"Malawi"}
        MX{"Migizike"}
        MY{"Maleziya"}
        MZ{"Mozambiki"}
        NA{"Namibiya"}
        NC{"Niyukaledoniya"}
        NE{"Nijeri"}
        NF{"izinga rya Norufoluke"}
        NG{"Nijeriya"}
        NI{"Nikaragwa"}
        NL{"Ubuholandi"}
        NO{"Noruveji"}
        NP{"Nepali"}
        NR{"Nawuru"}
        NU{"Niyuwe"}
        NZ{"Nuvelizelandi"}
        OM{"Omani"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polineziya y'Abafaransa"}
        PG{"Papuwa Niyugineya"}
        PH{"Amazinga ya Filipine"}
        PK{"Pakisitani"}
        PL{"Polonye"}
        PM{"Sempiyeri na Mikeloni"}
        PN{"Pitikeyirini"}
        PR{"Puwetoriko"}
        PS{"Palesitina Wesitibanka na Gaza"}
        PT{"Porutugali"}
        PW{"Palawu"}
        PY{"Paragwe"}
        QA{"Katari"}
        RE{"Amazinga ya Reyiniyo"}
        RO{"Rumaniya"}
        RU{"Uburusiya"}
        RW{"u Rwanda"}
        SA{"Arabiya Sawudite"}
        SB{"Amazinga ya Salumoni"}
        SC{"Amazinga ya Seyisheli"}
        SD{"Sudani"}
        SE{"Suwedi"}
        SG{"Singapuru"}
        SH{"Sehelene"}
        SI{"Siloveniya"}
        SK{"Silovakiya"}
        SL{"Siyeralewone"}
        SM{"Sanimarino"}
        SN{"Senegali"}
        SO{"Somaliya"}
        SR{"Suriname"}
        ST{"Sawotome na Perensipe"}
        SV{"Eli Saluvatori"}
        SY{"Siriya"}
        SZ{"Suwazilandi"}
        TC{"Amazinga ya Turkisi na Cayikosi"}
        TD{"Cadi"}
        TG{"Togo"}
        TH{"Tayilandi"}
        TJ{"Tajikisitani"}
        TK{"Tokelawu"}
        TL{"Timoru y'iburasirazuba"}
        TM{"Turukumenisitani"}
        TN{"Tuniziya"}
        TO{"Tonga"}
        TR{"Turukiya"}
        TT{"Tirinidadi na Tobago"}
        TV{"Tuvalu"}
        TW{"Tayiwani"}
        TZ{"Tanzaniya"}
        UA{"Ikerene"}
        UG{"Ubugande"}
        US{"Leta Zunze Ubumwe za Amerika"}
        UY{"Irigwe"}
        UZ{"Uzubekisitani"}
        VA{"Umurwa wa Vatikani"}
        VC{"Sevensa na Gerenadine"}
        VE{"Venezuwela"}
        VG{"Ibirwa by'isugi by'Abongereza"}
        VI{"Amazinga y'Isugi y'Abanyamerika"}
        VN{"Viyetinamu"}
        VU{"Vanuwatu"}
        WF{"Walisi na Futuna"}
        WS{"Samowa"}
        YE{"Yemeni"}
        YT{"Mayote"}
        ZA{"Afurika y'Epfo"}
        ZM{"Zambiya"}
        ZW{"Zimbabwe"}
    }
    Version{"2.0.92.87"}
}
