﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ga.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/ga.xml
 */
ga{
    Countries{
        001{"An Domhan"}
        002{"An Afraic"}
        009{"An Aigéine"}
        013{"Meiriceá Láir"}
        017{"An Afraic Láir"}
        019{"Na Meiriceánna"}
        053{"An Astráil agus an Nua-Shéalainn"}
        054{"An Mheilinéis"}
        057{"An Réigiún Micrinéiseach"}
        061{"An Pholainéis"}
        142{"An Áise"}
        143{"An Áise Láir"}
        150{"An Eoraip"}
        419{"Meiriceá Laidineach agus an Mhuir Chairib"}
        AD{"Andóra"}
        AE{"Aontas na nÉimíríochtaí Arabacha"}
        AF{"An Afganastáin"}
        AG{"Aintíge agus Barbúda"}
        AI{"Anguilla"}
        AL{"An Albáin"}
        AM{"An Airméin"}
        AN{"Antillí na hÍsiltíre"}
        AO{"Angóla"}
        AQ{"An Antartaice"}
        AR{"An Airgintín"}
        AS{"Samó Meiriceánach"}
        AT{"An Ostair"}
        AU{"An Astráil"}
        AW{"Arúba"}
        AX{"Oileáin Alaind"}
        AZ{"An Asarbaiseáin"}
        BA{"An Bhoisnia agus Heirseagóvéin"}
        BB{"Barbadós"}
        BD{"An Bhanglaidéis"}
        BE{"An Bheilg"}
        BF{"Buircíne Fasó"}
        BG{"An Bhulgáir"}
        BH{"Bairéin"}
        BI{"An Bhurúin"}
        BJ{"Beinin"}
        BM{"Beirmiúda"}
        BN{"Brúiné"}
        BO{"An Bholaiv"}
        BR{"An Bhrasaíl"}
        BS{"Na Bahámaí"}
        BT{"An Bhútáin"}
        BV{"Oileán Bouvet"}
        BW{"An Bhotsuáin"}
        BY{"An Bhealarúis"}
        BZ{"An Bheilís"}
        CA{"Ceanada"}
        CC{"Oileáin na gCócónna"}
        CD{"Poblacht Dhaonlathach an Chongó"}
        CF{"Poblacht na hAfraice Láir"}
        CG{"An Congó"}
        CH{"An Eilvéis"}
        CI{"An Cósta Eabhair"}
        CK{"Oileáin Cook"}
        CL{"An tSile"}
        CM{"Camarún"}
        CN{"An tSín"}
        CO{"An Cholóim"}
        CR{"Cósta Ríce"}
        CU{"Cúba"}
        CV{"An Rinn Ghlas"}
        CX{"Oileán na Nollag"}
        CY{"An Chipir"}
        CZ{"Poblacht na Seice"}
        DE{"An Ghearmáin"}
        DJ{"Djibouti"}
        DK{"An Danmhairg"}
        DM{"Doiminice"}
        DO{"An Phoblacht Dhoiminiceach"}
        DZ{"An Ailgéir"}
        EC{"Eacuadór"}
        EE{"An Eastóin"}
        EG{"An Éigipt"}
        EH{"An Sahára Thiar"}
        ER{"An Eiritré"}
        ES{"An Spáinn"}
        ET{"An Aetóip"}
        EU{"An tAontas Eorpach"}
        FI{"An Fhionlainn"}
        FJ{"Fidsí"}
        FK{"Oileáin Fháclainne"}
        FM{"An Mhicrinéis"}
        FO{"Oileáin Fharó"}
        FR{"An Fhrainc"}
        GA{"An Ghabúin"}
        GB{"An Ríocht Aontaithe"}
        GD{"Grenada"}
        GE{"An tSeoirsia"}
        GF{"An Ghuáin Fhrancach"}
        GG{"Geansaí"}
        GH{"Gána"}
        GI{"Giobráltar"}
        GL{"An Ghraonlainn"}
        GM{"An Ghaimbia"}
        GN{"An Ghuine"}
        GP{"Guadalúip"}
        GQ{"An Ghuine Mheánchriosach"}
        GR{"An Ghréig"}
        GS{"An tSeoirsia Theas agus Oileáin Sandwich Theas"}
        GT{"Guatamala"}
        GU{"Guam"}
        GW{"An Ghuine-Bhissau"}
        GY{"An Ghuáin"}
        HK{"R.R.S. na Síne Hong Cong"}
        HM{"Oileán Heard agus Oileáin McDonald"}
        HN{"Hondúras"}
        HR{"An Chróit"}
        HT{"Háití"}
        HU{"An Ungáir"}
        ID{"An Indinéis"}
        IE{"Éire"}
        IL{"Iosrael"}
        IM{"Oileán Mhanann"}
        IN{"An India"}
        IO{"Críocha Briotanacha an Aigéin Indiagh"}
        IQ{"An Iaráic"}
        IR{"An Iaráin"}
        IS{"An Íoslainn"}
        IT{"An Iodáil"}
        JE{"Geirsí"}
        JM{"Iamáice"}
        JO{"An Iordáin"}
        JP{"An tSeapáin"}
        KE{"An Chéinia"}
        KG{"An Chirgeastáin"}
        KH{"An Chambóid"}
        KI{"Ciribeas"}
        KM{"Oileáin Chomóra"}
        KN{"Saint Kitts agus Nevis"}
        KP{"An Chóiré Thuaidh"}
        KR{"An Chóiré Theas"}
        KW{"Cuáit"}
        KY{"Oileáin na gCadhman"}
        KZ{"An Chasacstáin"}
        LA{"Laos"}
        LB{"An Liobáin"}
        LC{"San Lúisia"}
        LI{"Lichtinstéin"}
        LK{"Srí Lanca"}
        LR{"An Libéir"}
        LS{"Leosóta"}
        LT{"An Liotuáin"}
        LU{"Lucsamburg"}
        LV{"An Laitvia"}
        LY{"An Libia"}
        MA{"Maracó"}
        MC{"Monacó"}
        MD{"An Mholdóiv"}
        ME{"Montainéagró"}
        MG{"Madagascar"}
        MH{"Oileáin Marshall"}
        MK{"An Mhacadóin"}
        ML{"Mailí"}
        MM{"Maenmar"}
        MN{"An Mhongóil"}
        MO{"R.R.S. na Síne Macáó"}
        MP{"Oileáin Mariana Thuaidh"}
        MQ{"Martainíc"}
        MR{"An Mharatáin"}
        MS{"Montsarat"}
        MT{"Málta"}
        MU{"Oileán Mhuirís"}
        MV{"Na Maildiví"}
        MW{"An Mhaláiv"}
        MX{"Meicsiceo"}
        MY{"An Mhalaeisia"}
        MZ{"Mósaimbíc"}
        NA{"An Namaib"}
        NC{"An Nua-Chaladóin"}
        NE{"An Nígir"}
        NF{"Oileán Norfolk"}
        NG{"An Nigéir"}
        NI{"Nicearagua"}
        NL{"An Ísiltír"}
        NO{"An Iorua"}
        NP{"Neipeal"}
        NR{"Nárú"}
        NU{"Nívé"}
        NZ{"An Nua-Shéalainn"}
        OM{"Óman"}
        PA{"Panama"}
        PE{"Peiriú"}
        PF{"An Pholainéis Fhrancach"}
        PG{"Nua-Ghuine Phapua"}
        PH{"Na hOileáin Fhilipíneacha"}
        PK{"An Phacastáin"}
        PL{"An Pholainn"}
        PM{"Saint Pierre agus Miquelon"}
        PN{"Pitcairn"}
        PR{"Portó Ríce"}
        PS{"Na Críocha Pailistíneacha"}
        PT{"An Phortaingéil"}
        PW{"Palau"}
        PY{"Paragua"}
        QA{"Catar"}
        QO{"An Aigéine Imeallach"}
        RE{"Réunion"}
        RO{"An Rómáin"}
        RS{"An tSeirbia"}
        RU{"Cónaidhm na Rúise"}
        RW{"Ruanda"}
        SA{"An Araib Shádach"}
        SB{"Oileáin Sholaimh"}
        SC{"Na Séiséil"}
        SD{"An tSúdáin"}
        SE{"An tSualainn"}
        SG{"Singeapór"}
        SH{"San Héilin"}
        SI{"An tSlóvéin"}
        SJ{"Svalbard agus Jan Mayen"}
        SK{"An tSlóvaic"}
        SL{"Siarra Leon"}
        SM{"San Mairíne"}
        SN{"An tSeineagáil"}
        SO{"An tSomáil"}
        SR{"Suranam"}
        ST{"Sao Tome agus Principe"}
        SV{"An tSalvadóir"}
        SY{"An tSiria"}
        SZ{"An tSuasalainn"}
        TC{"Oileáin Turks agus Caicos"}
        TD{"Sead"}
        TF{"Críocha Deisceartacha na Fraince"}
        TG{"Tóga"}
        TH{"An Téalainn"}
        TJ{"An Táidsíceastáin"}
        TK{"Tócalá"}
        TL{"Tíomór Thoir"}
        TM{"An Tuircméanastáin"}
        TN{"An Túinéis"}
        TO{"Tonga"}
        TR{"An Tuirc"}
        TT{"Oileáin na Tríonóide agus Tobága"}
        TV{"Túválú"}
        TW{"An Téaváin"}
        TZ{"An Tansáin"}
        UA{"An Úcráin"}
        UG{"Úganda"}
        UM{"Mion-Oileáin Imeallacha S.A.M."}
        US{"Stáit Aontaithe Mheiriceá"}
        UY{"Urugua"}
        UZ{"Úisbéiceastáin"}
        VA{"An Vatacáin"}
        VC{"Saint Vincent agus na Grenadines"}
        VE{"Veiniséala"}
        VG{"Oileáin Bhriotanacha na Maighdean"}
        VI{"Oileáin na Maighdean S.A.M."}
        VN{"Vít Neam"}
        VU{"Vanuatú"}
        WF{"Oileáin Vailís agus Futúna"}
        WS{"Samó"}
        YE{"Éimin"}
        YT{"Mayotte"}
        ZA{"An Afraic Theas"}
        ZM{"An tSaimbia"}
        ZW{"An tSiombáib"}
        ZZ{"Réigiún Anaithnid nó Neamhbhailí"}
    }
    CountriesShort{
        HK{"Hong Cong"}
        MO{"Macáó"}
    }
    Version{"2.0.92.87"}
}
