﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/nl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/nl.xml
 */
nl{
    Countries{
        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{"Alandeilanden"}
        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"}
        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"}
        CH{"Zwitserland"}
        CI{"Ivoorkust"}
        CK{"Cookeilanden"}
        CL{"Chili"}
        CM{"Kameroen"}
        CN{"China"}
        CO{"Colombia"}
        CP{"Clipperton"}
        CR{"Costa Rica"}
        CS{"Servië en Montenegro"}
        CU{"Cuba"}
        CV{"Kaapverdië"}
        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-Georgië 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{"Sint-Maarten"}
        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{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palestijns Gebied"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Oceanië (overige)"}
        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"}
        ST{"Sao Tomé en Principe"}
        SV{"El Salvador"}
        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{"Amerikaanse kleinere afgelegen eilanden"}
        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 of onjuist gebied"}
    }
    Version{"2.0.51.59"}
}
