﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fy.xml
// *
// ***************************************************************************
fy{
    Countries{
        001{"Wrâld"}
        002{"Afrika"}
        003{"Noard-Amerika"}
        005{"Sûd-Amerika"}
        009{"Oceanië"}
        011{"West-Afrika"}
        013{"Midden-Amerika"}
        014{"East-Afrika"}
        015{"Noard-Afrika"}
        017{"Sintraal-Afrika"}
        018{"Sûdelijk Afrika"}
        019{"Amerika"}
        021{"Noardlik Amerika"}
        029{"Karibysk gebiet"}
        030{"East-Azië"}
        034{"Sûd-Azië"}
        035{"Sûdoost-Azië"}
        039{"Sûd-Europa"}
        053{"Australazië"}
        054{"Melanesië"}
        057{"Micronesyske regio"}
        061{"Polynesië"}
        142{"Azië"}
        143{"Sintraal-Azië"}
        145{"West-Azië"}
        150{"Europa"}
        151{"East-Europa"}
        154{"Noard-Europa"}
        155{"West-Europa"}
        419{"Latynsk-Amearika"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Verenigde Arabyske Emiraten"}
        AF{"Afghanistan"}
        AG{"Antigua en Barbuda"}
        AI{"Anguilla"}
        AL{"Albanië"}
        AM{"Armenië"}
        AN{"Nederlânske Antillen"}
        AO{"Angola"}
        AQ{"Antarctica"}
        AR{"Argentinië"}
        AS{"Amerikaansk Samoa"}
        AT{"Eastenryk"}
        AU{"Australië"}
        AW{"Aruba"}
        AX{"Ålân"}
        AZ{"Azerbeidzjan"}
        BA{"Bosnië en Herzegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"België"}
        BF{"Burkina Faso"}
        BG{"Bulgarije"}
        BH{"Bahrein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BQ{"Karibysk Nederlân"}
        BR{"Brazilië"}
        BS{"Bahama’s"}
        BT{"Bhutan"}
        BV{"Bouveteilân"}
        BW{"Botswana"}
        BY{"Wit-Ruslân"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Kokosilanen"}
        CD{"Congo-Kinshasa"}
        CF{"Sintraal-Afrikaanske Republyk"}
        CG{"Congo-Brazzaville"}
        CH{"Switserlân"}
        CI{"Ivoorkust"}
        CK{"Cookeilannen"}
        CL{"Chili"}
        CM{"Kameroen"}
        CN{"Sina"}
        CO{"Kolombia"}
        CP{"Clipperton"}
        CR{"Costa Rica"}
        CU{"Kuba"}
        CV{"Kaapverdië"}
        CW{"Curaçao"}
        CX{"Krysteilan"}
        CY{"Syprus"}
        CZ{"Tsjechje"}
        DE{"Dútslân"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Denemarken"}
        DM{"Dominika"}
        DO{"Dominikaanske Republyk"}
        DZ{"Algerije"}
        EA{"Ceuta en Melilla"}
        EC{"Ecuador"}
        EE{"Estlân"}
        EG{"Egypte"}
        EH{"Westelijke Sahara"}
        ER{"Eritrea"}
        ES{"Spanje"}
        ET{"Ethiopië"}
        EU{"Europeeske Unie"}
        FI{"Finlân"}
        FJ{"Fiji"}
        FK{"Falklâneilannen"}
        FM{"Micronesië"}
        FO{"Faeröer"}
        FR{"Frankrijk"}
        GA{"Gabon"}
        GB{"Verenigd Koninkrijk"}
        GD{"Grenada"}
        GE{"Georgië"}
        GF{"Frans-Guyana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grienlân"}
        GM{"Gambia"}
        GN{"Guinee"}
        GP{"Guadeloupe"}
        GQ{"Equatoriaal-Guinea"}
        GR{"Grikelân"}
        GS{"Sûd-Georgia en Sûdlike Sandwicheilannen"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinee-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong SAR van Sina"}
        HM{"Heard- en McDonaldeilannen"}
        HN{"Honduras"}
        HR{"Kroatië"}
        HT{"Haïti"}
        HU{"Hongarije"}
        IC{"Kanaryske Eilânnen"}
        ID{"Yndonesië"}
        IE{"Ierlân"}
        IL{"Israël"}
        IM{"Isle of Man"}
        IN{"India"}
        IO{"Britse Gebieden yn de Indyske Oseaan"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Yslân"}
        IT{"Italië"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordanië"}
        JP{"Japan"}
        KE{"Kenia"}
        KG{"Kirgizië"}
        KH{"Cambodja"}
        KI{"Kiribati"}
        KM{"Comoren"}
        KN{"Saint Kitts en Nevis"}
        KP{"Noard-Korea"}
        KR{"Sûd-Korea"}
        KW{"Koeweit"}
        KY{"Caymaneilannen"}
        KZ{"Kazachstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Litouwen"}
        LU{"Luxemburg"}
        LV{"Letlân"}
        LY{"Libië"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldavië"}
        ME{"Montenegro"}
        MF{"Saint-Martin"}
        MG{"Madeiaskar"}
        MH{"Marshalleilannen"}
        MK{"Macedonië"}
        ML{"Mali"}
        MM{"Myanmar (Birma)"}
        MN{"Mongolië"}
        MO{"Macao SAR van Sina"}
        MP{"Noardlike Marianeneilannen"}
        MQ{"Martinique"}
        MR{"Mauritanië"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldiven"}
        MW{"Malawi"}
        MX{"Mexico"}
        MY{"Maleisië"}
        MZ{"Mozambique"}
        NA{"Namibië"}
        NC{"Nij-Caledonië"}
        NE{"Niger"}
        NF{"Norfolkeilân"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Nederlân"}
        NO{"Noarwegen"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nij-Seelân"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Frans-Polynesië"}
        PG{"Papoea-Nij-Guinea"}
        PH{"Filipijnen"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"Saint-Pierre en Miquelon"}
        PN{"Pitcairneilannen"}
        PR{"Puerto Rico"}
        PS{"Palestynske gebieten"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Oerig Oceanië"}
        RE{"Réunion"}
        RO{"Roemenië"}
        RS{"Servië"}
        RU{"Ruslân"}
        RW{"Rwanda"}
        SA{"Saoedi-Arabië"}
        SB{"Salomonseilannen"}
        SC{"Seychellen"}
        SD{"Soedan"}
        SE{"Zweden"}
        SG{"Singapore"}
        SH{"Sint-Helena"}
        SI{"Slovenië"}
        SJ{"Spitsbergen en Jan Mayen"}
        SK{"Slowakije"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalië"}
        SR{"Suriname"}
        SS{"Sûd-Soedan"}
        ST{"Sao Tomé en Principe"}
        SV{"El Salvador"}
        SX{"Sint-Maarten"}
        SY{"Syrië"}
        SZ{"Swazilân"}
        TA{"Tristan da Cunha"}
        TC{"Turks- en Caicoseilannen"}
        TD{"Tsjaad"}
        TF{"Franse Gebieden in de zuidelijke Indyske Oseaan"}
        TG{"Togo"}
        TH{"Thailân"}
        TJ{"Tadzjikistan"}
        TK{"Tokelau"}
        TL{"East-Timor"}
        TM{"Turkmenistan"}
        TN{"Tunesië"}
        TO{"Tonga"}
        TR{"Turkije"}
        TT{"Trinidad en Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzania"}
        UA{"Oekraïne"}
        UG{"Oeganda"}
        UM{"Lyts ôflizzen eilannen fan de Ferienigde Staten"}
        US{"Ferienigde Staten"}
        UY{"Uruguay"}
        UZ{"Oezbekistan"}
        VA{"Vaticaanstêd"}
        VC{"Saint Vincent en de Grenadines"}
        VE{"Venezuela"}
        VG{"Britse Maagdeneilannen"}
        VI{"Amerikaanske Maagdeneilannen"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis en Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Sûd-Afrika"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Unbekend gebiet"}
    }
    Countries%short{
        GB{"VK"}
        HK{"Hongkong"}
        MO{"Macao"}
        PS{"Palestina"}
        US{"VS"}
    }
    Countries%variant{
        CD{"Congo (DRC)"}
        CG{"Congo (Republyk)"}
        FK{"Falklâneilannen (Islas Malvinas)"}
        MK{"Macedonië (FYROM)"}
    }
    Version{"2.1.15.91"}
}
