﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/cy.xml
// *
// ***************************************************************************
cy{
    Countries{
        001{"Y Byd"}
        002{"Affrica"}
        003{"Gogledd America"}
        005{"De America"}
        009{"Oceania"}
        011{"Gorllewin Affrica"}
        013{"Canolbarth America"}
        014{"Dwyrain Affrica"}
        015{"Gogledd Affrica"}
        017{"Canol Affrica"}
        018{"Deheudir Affrica"}
        019{"Yr Amerig"}
        021{"America i’r Gogledd o Fecsico"}
        029{"Y Caribî"}
        030{"Dwyrain Asia"}
        034{"De Asia"}
        035{"De-Ddwyrain Asia"}
        039{"De Ewrop"}
        053{"Awstralasia"}
        054{"Melanesia"}
        057{"Rhanbarth Micronesia"}
        061{"Polynesia"}
        142{"Asia"}
        143{"Canol Asia"}
        145{"Gorllewin Asia"}
        150{"Ewrop"}
        151{"Dwyrain Ewrop"}
        154{"Gogledd Ewrop"}
        155{"Gorllewin Ewrop"}
        419{"America Ladin"}
        AC{"Ynys Ascension"}
        AD{"Andorra"}
        AE{"Emiradau Arabaidd Unedig"}
        AF{"Afghanistan"}
        AG{"Antigua a Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Ynysoedd Caribî yr Iseldiroedd"}
        AO{"Angola"}
        AQ{"Antarctica"}
        AR{"Yr Ariannin"}
        AS{"Samoa America"}
        AT{"Awstria"}
        AU{"Awstralia"}
        AW{"Aruba"}
        AX{"Ynysoedd Åland"}
        AZ{"Azerbaijan"}
        BA{"Bosnia a Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Gwlad Belg"}
        BF{"Burkina Faso"}
        BG{"Bwlgaria"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolifia"}
        BQ{"Antilles yr Iseldiroedd"}
        BR{"Brasil"}
        BS{"Y Bahamas"}
        BT{"Bhutan"}
        BV{"Ynys Bouvet"}
        BW{"Botswana"}
        BY{"Belarws"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Ynysoedd Cocos (Keeling)"}
        CD{"Y Congo - Kinshasa"}
        CF{"Gweriniaeth Canolbarth Affrica"}
        CG{"Y Congo - Brazzaville"}
        CH{"Y Swistir"}
        CI{"Côte d’Ivoire"}
        CK{"Ynysoedd Cook"}
        CL{"Chile"}
        CM{"Camerŵn"}
        CN{"Tsieina"}
        CO{"Colombia"}
        CP{"Ynys Clipperton"}
        CR{"Costa Rica"}
        CU{"Ciwba"}
        CV{"Cabo Verde"}
        CW{"Curaçao"}
        CX{"Ynys y Nadolig"}
        CY{"Cyprus"}
        CZ{"Gweriniaeth Tsiec"}
        DE{"Yr Almaen"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Denmarc"}
        DM{"Dominica"}
        DO{"Gweriniaeth Dominica"}
        DZ{"Algeria"}
        EA{"Ceuta a Melilla"}
        EC{"Ecuador"}
        EE{"Estonia"}
        EG{"Yr Aifft"}
        EH{"Gorllewin Sahara"}
        ER{"Eritrea"}
        ES{"Sbaen"}
        ET{"Ethiopia"}
        EU{"Yr Undeb Ewropeaidd"}
        FI{"Y Ffindir"}
        FJ{"Fiji"}
        FK{"Ynysoedd y Falkland/Malvinas"}
        FM{"Micronesia"}
        FO{"Ynysoedd Ffaro"}
        FR{"Ffrainc"}
        GA{"Gabon"}
        GB{"Y Deyrnas Unedig"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"Guyane Ffrengig"}
        GG{"Ynys y Garn"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Yr Ynys Las"}
        GM{"Gambia"}
        GN{"Guinée"}
        GP{"Guadeloupe"}
        GQ{"Guinea Gyhydeddol"}
        GR{"Gwlad Groeg"}
        GS{"De Georgia ac Ynysoedd Sandwich y De"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guiné-Bissau"}
        GY{"Guyana"}
        HK{"Hong Kong"}
        HM{"Ynys Heard ac Ynysoedd McDonald"}
        HN{"Honduras"}
        HR{"Croatia"}
        HT{"Haiti"}
        HU{"Hwngari"}
        IC{"Yr Ynysoedd Dedwydd"}
        ID{"Indonesia"}
        IE{"Iwerddon"}
        IL{"Israel"}
        IM{"Ynys Manaw"}
        IN{"India"}
        IO{"Tiriogaeth Brydeinig Cefnfor India"}
        IQ{"Irac"}
        IR{"Iran"}
        IS{"Gwlad yr Iâ"}
        IT{"Yr Eidal"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Gwlad Iorddonen"}
        JP{"Japan"}
        KE{"Kenya"}
        KG{"Kyrgyzstan"}
        KH{"Cambodia"}
        KI{"Kiribati"}
        KM{"Comoros"}
        KN{"Saint Kitts a Nevis"}
        KP{"Gogledd Korea"}
        KR{"De Korea"}
        KW{"Kuwait"}
        KY{"Ynysoedd Cayman"}
        KZ{"Kazakstan"}
        LA{"Laos"}
        LB{"Libanus"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Lithuania"}
        LU{"Lwcsembwrg"}
        LV{"Latfia"}
        LY{"Libya"}
        MA{"Moroco"}
        MC{"Monaco"}
        MD{"Moldofa"}
        ME{"Montenegro"}
        MF{"Saint Martin"}
        MG{"Madagascar"}
        MH{"Ynysoedd Marshall"}
        MK{"Macedonia"}
        ML{"Mali"}
        MM{"Myanmar (Burma)"}
        MN{"Mongolia"}
        MO{"Macau"}
        MP{"Ynysoedd Gogledd Mariana"}
        MQ{"Martinique"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Y Maldives"}
        MW{"Malawi"}
        MX{"Mecsico"}
        MY{"Malaysia"}
        MZ{"Mozambique"}
        NA{"Namibia"}
        NC{"Caledonia Newydd"}
        NE{"Niger"}
        NF{"Ynys Norfolk"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Yr Iseldiroedd"}
        NO{"Norwy"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Seland Newydd"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Periw"}
        PF{"Polynesia Ffrengig"}
        PG{"Papua Guinea Newydd"}
        PH{"Y Philipinau"}
        PK{"Pakistan"}
        PL{"Gwlad Pwyl"}
        PM{"Saint-Pierre-et-Miquelon"}
        PN{"Ynysoedd Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palesteina"}
        PT{"Portiwgal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Oceania Bellennig"}
        RE{"Réunion"}
        RO{"Rwmania"}
        RS{"Serbia"}
        RU{"Rwsia"}
        RW{"Rwanda"}
        SA{"Saudi Arabia"}
        SB{"Ynysoedd Solomon"}
        SC{"Seychelles"}
        SD{"Swdan"}
        SE{"Sweden"}
        SG{"Singapore"}
        SH{"Saint Helena"}
        SI{"Slofenia"}
        SJ{"Svalbard a Jan Mayen"}
        SK{"Slofacia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Suriname"}
        SS{"De Swdan"}
        ST{"São Tomé a Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Syria"}
        SZ{"Gwlad Swazi"}
        TA{"Tristan da Cunha"}
        TC{"Ynysoedd Turks a Caicos"}
        TD{"Tchad"}
        TF{"Tiroedd Deheuol ac Antarctig Ffrainc"}
        TG{"Togo"}
        TH{"Gwlad Thai"}
        TJ{"Tajikistan"}
        TK{"Tokelau"}
        TL{"Timor-Leste"}
        TM{"Turkmenistan"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Twrci"}
        TT{"Trinidad a Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzania"}
        UA{"Wcráin"}
        UG{"Uganda"}
        UM{"Ynysoedd Pellennig UDA"}
        US{"Yr Unol Daleithiau"}
        UY{"Uruguay"}
        UZ{"Uzbekistan"}
        VA{"Y Fatican"}
        VC{"Saint Vincent a’r Grenadines"}
        VE{"Venezuela"}
        VG{"Ynysoedd Gwyryf Prydain"}
        VI{"Ynysoedd Gwyryf yr Unol Daleithiau"}
        VN{"Fietnam"}
        VU{"Vanuatu"}
        WF{"Wallis a Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Yemen"}
        YT{"Mayotte"}
        ZA{"De Affrica"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Rhanbarth Anhysbys"}
    }
    Countries%short{
        GB{"DU"}
        US{"UDA"}
    }
    Countries%variant{
        CD{"y Congo (G.Dd.C.)"}
        CG{"Y Congo (Gweriniaeth)"}
        CI{"Arfordir Ifori"}
        FK{"Ynysoedd y Falkland (Ynysoedd y Malfinas)"}
        MK{"Macedonia (CWIM)"}
        TL{"Dwyrain Timor"}
    }
    Version{"2.1.20.4"}
}
