﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/nl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/nl.xml
 */
nl{
    Countries{
        001{"Wereld"}
        002{"Afrika"}
        003{"Noord-Amerika"}
        005{"Zuid-Amerika"}
        009{"Oceanië"}
        011{"West-Afrika"}
        013{"Midden-Amerika"}
        014{"Oost-Afrika"}
        015{"Noord-Afrika"}
        017{"Centraal-Afrika"}
        018{"Zuidelijk Afrika"}
        019{"Amerika"}
        021{"Noordelijk Amerika"}
        029{"Caribisch gebied"}
        030{"Oost-Azië"}
        034{"Zuid-Azië"}
        035{"Zuidoost-Azië"}
        039{"Zuid-Europa"}
        053{"Australazië"}
        054{"Melanesië"}
        057{"Micronesische regio"}
        061{"Polynesië"}
        142{"Azië"}
        143{"Centraal-Azië"}
        145{"West-Azië"}
        150{"Europa"}
        151{"Oost-Europa"}
        154{"Noord-Europa"}
        155{"West-Europa"}
        419{"Latijns-Amerika"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Verenigde Arabische Emiraten"}
        AF{"Afghanistan"}
        AG{"Antigua en Barbuda"}
        AI{"Anguilla"}
        AL{"Albanië"}
        AM{"Armenië"}
        AN{"Nederlandse Antillen"}
        AO{"Angola"}
        AQ{"Antarctica"}
        AR{"Argentinië"}
        AS{"Amerikaans Samoa"}
        AT{"Oostenrijk"}
        AU{"Australië"}
        AW{"Aruba"}
        AX{"Ålandeilanden"}
        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{"Caribisch Nederland"}
        BR{"Brazilië"}
        BS{"Bahama’s"}
        BT{"Bhutan"}
        BV{"Bouveteiland"}
        BW{"Botswana"}
        BY{"Wit-Rusland"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Cocoseilanden"}
        CD{"Congo-Kinshasa"}
        CF{"Centraal-Afrikaanse Republiek"}
        CG{"Congo-Brazzaville"}
        CH{"Zwitserland"}
        CI{"Ivoorkust"}
        CK{"Cookeilanden"}
        CL{"Chili"}
        CM{"Kameroen"}
        CN{"China"}
        CO{"Colombia"}
        CP{"Clipperton"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Kaapverdië"}
        CW{"Curaçao"}
        CX{"Christmaseiland"}
        CY{"Cyprus"}
        CZ{"Tsjechië"}
        DE{"Duitsland"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Denemarken"}
        DM{"Dominica"}
        DO{"Dominicaanse Republiek"}
        DZ{"Algerije"}
        EA{"Ceuta en Melilla"}
        EC{"Ecuador"}
        EE{"Estland"}
        EG{"Egypte"}
        EH{"Westelijke Sahara"}
        ER{"Eritrea"}
        ES{"Spanje"}
        ET{"Ethiopië"}
        EU{"Europese Unie"}
        FI{"Finland"}
        FJ{"Fiji"}
        FK{"Falklandeilanden"}
        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{"Groenland"}
        GM{"Gambia"}
        GN{"Guinee"}
        GP{"Guadeloupe"}
        GQ{"Equatoriaal-Guinea"}
        GR{"Griekenland"}
        GS{"Zuid-Georgia en Zuidelijke Sandwicheilanden"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinee-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong SAR van China"}
        HM{"Heard- en McDonaldeilanden"}
        HN{"Honduras"}
        HR{"Kroatië"}
        HT{"Haïti"}
        HU{"Hongarije"}
        IC{"Canarische Eilanden"}
        ID{"Indonesië"}
        IE{"Ierland"}
        IL{"Israël"}
        IM{"Isle of Man"}
        IN{"India"}
        IO{"Britse Gebieden in de Indische Oceaan"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"IJsland"}
        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{"Noord-Korea"}
        KR{"Zuid-Korea"}
        KW{"Koeweit"}
        KY{"Caymaneilanden"}
        KZ{"Kazachstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Litouwen"}
        LU{"Luxemburg"}
        LV{"Letland"}
        LY{"Libië"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldavië"}
        ME{"Montenegro"}
        MF{"Saint-Martin"}
        MG{"Madagaskar"}
        MH{"Marshalleilanden"}
        MK{"Macedonië"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolië"}
        MO{"Macao SAR van China"}
        MP{"Noordelijke Marianeneilanden"}
        MQ{"Martinique"}
        MR{"Mauritanië"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldiven"}
        MW{"Malawi"}
        MX{"Mexico"}
        MY{"Maleisië"}
        MZ{"Mozambique"}
        NA{"Namibië"}
        NC{"Nieuw-Caledonië"}
        NE{"Niger"}
        NF{"Norfolkeiland"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Nederland"}
        NO{"Noorwegen"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nieuw-Zeeland"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Frans-Polynesië"}
        PG{"Papoea-Nieuw-Guinea"}
        PH{"Filipijnen"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"Saint Pierre en Miquelon"}
        PN{"Pitcairneilanden"}
        PR{"Puerto Rico"}
        PS{"Palestijnse gebieden"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Overig Oceanië"}
        RE{"Réunion"}
        RO{"Roemenië"}
        RS{"Servië"}
        RU{"Rusland"}
        RW{"Rwanda"}
        SA{"Saoedi-Arabië"}
        SB{"Salomonseilanden"}
        SC{"Seychellen"}
        SD{"Soedan"}
        SE{"Zweden"}
        SG{"Singapore"}
        SH{"Sint-Helena"}
        SI{"Slovenië"}
        SJ{"Svalbard en Jan Mayen"}
        SK{"Slowakije"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalië"}
        SR{"Suriname"}
        SS{"Zuid-Soedan"}
        ST{"Sao Tomé en Principe"}
        SV{"El Salvador"}
        SX{"Sint-Maarten"}
        SY{"Syrië"}
        SZ{"Swaziland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- en Caicoseilanden"}
        TD{"Tsjaad"}
        TF{"Franse Gebieden in de zuidelijke Indische Oceaan"}
        TG{"Togo"}
        TH{"Thailand"}
        TJ{"Tadzjikistan"}
        TK{"Tokelau"}
        TL{"Oost-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{"Kleine afgelegen eilanden van de Verenigde Staten"}
        US{"Verenigde Staten"}
        UY{"Uruguay"}
        UZ{"Oezbekistan"}
        VA{"Vaticaanstad"}
        VC{"Saint Vincent en de Grenadines"}
        VE{"Venezuela"}
        VG{"Britse Maagdeneilanden"}
        VI{"Amerikaanse Maagdeneilanden"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis en Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Zuid-Afrika"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Onbekend gebied"}
    }
    Version{"2.0.82.45"}
}
