// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

nl {
    Version { "2.0" }
    Countries { 
        Fallback{ "en"}
        //AD { "Andorra" }
        AE { "Verenigde Arabische Emiraten" }
        //AF { "Afghanistan" }
        AG { "Antigua en Barbuda" }
        //AI { "Anguilla" }
        AL { "Albani\u00EB" }
        AM { "Armeni\u00EB" }
        AN { "Nederlandse Antillen" }
        //AO { "Angola" }
        //AQ { "Antarctica" }
        AR { "Argentini\u00EB" }
        AS { "Amerikaans Samoa" }
        AT { "Oostenrijk" }
        AU { "Australi\u00EB" }
        //AW { "Aruba" }
        AZ { "Azerbeidzjan" }
        BA { "Bosni\u00EB Herzegovina" }
        //BB { "Barbados" }
        //BD { "Bangladesh" }
        BE { "Belgi\u00EB" }
        //BF { "Burkina Faso" }
        BG { "Bulgarije" }
        BH { "Bahrein" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        BN { "Brunei Darussalam" }
        //BO { "Bolivia" }
        BR { "Brazili\u00EB" }
        BS { "Bahama's" }
        //BT { "Bhutan" }
        BV { "Bouveteiland" }
        //BW { "Botswana" }
        BY { "Wit-Rusland" }
        //BZ { "Belize" }
        //CA { "Canada" }
        CC { "Cocoseilanden" }
        CD { "Congo, Democratische Republiek" }
        CF { "Centraal-Afrikaanse Republiek" }
        //CG { "Congo" }
        CH { "Zwitserland" }
        CI { "Ivoorkust" }
        CK { "Cookeilanden" }
        CL { "Chili" }
        CM { "Kameroen" }
        //CN { "China" }
        //CO { "Colombia" }
        //CR { "Costa Rica" }
        //CU { "Cuba" }
        CV { "Kaapverdi\u00EB" }
        CX { "Christmaseiland" }
        //CY { "Cyprus" }
        CZ { "Tsjechi\u00EB" }
        DE { "Duitsland" }
        //DJ { "Djibouti" }
        DK { "Denemarken" }
        //DM { "Dominica" }
        DO { "Dominicaanse Republiek" }
        DZ { "Algerije" }
        //EC { "Ecuador" }
        EE { "Estland" }
        EG { "Egypte" }
        EH { "West-Sahara" }
        //ER { "Eritrea" }
        ES { "Spanje" }
        ET { "Ethiopi\u00EB" }
        //FI { "Finland" }
        //FJ { "Fiji" }
        FK { "Falklandeilanden" }
        FM { "Micronesia, Federale Staten van" }
        FO { "Faer\u00F6er" }
        FR { "Frankrijk" }
        //GA { "Gabon" }
        GB { "Verenigd Koninkrijk" }
        //GD { "Grenada" }
        GE { "Georgi\u00EB" }
        GF { "Frans-Guyana" }
        //GH { "Ghana" }
        //GI { "Gibraltar" }
        GL { "Groenland" }
        //GM { "Gambia" }
        //GN { "Guinea" }
        //GP { "Guadeloupe" }
        GQ { "Equatoriaal-Guinea" }
        GR { "Griekenland" }
        GS { "Zuid-Georgi\u00EB en Zuidelijke Sandwicheilanden" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        GW { "Guinee-Bissau" }
        //GY { "Guyana" }
        HK { "Hongkong S.A.R. van China" }
        HM { "Heardeiland en McDonaldeiland" }
        //HN { "Honduras" }
        HR { "Kroati\u00EB" }
        HT { "Ha\u00EFti" }
        HU { "Hongarije" }
        ID { "Indonesi\u00EB" }
        IE { "Ierland" }
        IL { "Isra\u00EBl" }
        //IN { "India" }
        IO { "Brits Territorium in de Indische Oceaan" }
        IQ { "Irak" }
        //IR { "Iran, Islamitische Republiek" }
        IS { "IJsland" }
        IT { "Itali\u00EB" }
        //JM { "Jamaica" }
        JO { "Jordani\u00EB" }
        //JP { "Japan" }
        KE { "Kenia" }
        KG { "Kirgizstan" }
        KH { "Cambodja" }
        //KI { "Kiribati" }
        KM { "Comoren" }
        KN { "Saint Kitts en Nevis" }
        KP { "Korea, Noord" }    // alternate name { "Korea, Democratische Volksrepubliek" }
        KR { "Korea, Zuid" }    // alternate name { "Korea, Republiek" }
        KW { "Koeweit" }
        KY { "Caymaneilanden" }
        KZ { "Kazakstan" }
        //LA { "Laos" }
        LB { "Libanon" }
        //LC { "Saint Lucia" }
        //LI { "Liechtenstein" }
        //LK { "Sri Lanka" }
        //LR { "Liberia" }
        //LS { "Lesotho" }
        LT { "Litouwen" }
        LU { "Luxemburg" }
        LV { "Letland" }
        LY { "Libi\u00EB" }
        MA { "Marokko" }
        //MC { "Monaco" }
        MD { "Moldova, Republiek" }
        MG { "Madagaskar" }
        MH { "Marshalleilanden" }
        MK { "Macedoni\u00EB, Republiek" }
        //ML { "Mali" }
        //MM { "Myanmar" }
        MN { "Mongoli\u00EB" }
        MO { "Macao S.A.R. van China" }
        MP { "Noordelijke Marianeneilanden" }
        //MQ { "Martinique" }
        MR { "Mauritani\u00EB" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        //MU { "Mauritius" }
        MV { "Malediven" }
        //MW { "Malawi" }
        //MX { "Mexico" }
        MY { "Maleisi\u00EB" }
        //MZ { "Mozambique" }
        NA { "Namibi\u00EB" }
        NC { "Nieuw-Caledoni\u00EB" }
        //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\u00EB" }
        PG { "Papoea-Nieuw-Guinea" }
        PH { "Filippijnen" }
        //PK { "Pakistan" }
        PL { "Polen" }
        PM { "Saint Pierre en Miquelon" }
        //PN { "Pitcairn" }
        //PR { "Puerto Rico" }
        PS { "Palestijns Gebied" }
        //PT { "Portugal" }
        //PW { "Palau" }
        //PY { "Paraguay" }
        QA { "Katar" }
        //RE { "R\u00E9union" }
        RO { "Roemeni\u00EB" }
        RU { "Russische Federatie" }
        //RW { "Rwanda" }
        SA { "Saoedi-Arabi\u00EB" }
        SB { "Salomonseilanden" }
        SC { "Seychellen" }
        SE { "Zweden" }
        //SG { "Singapore" }
        //SH { "Saint Helena" }
        SI { "Sloveni\u00EB" }
        SJ { "Svalbard en Jan Mayen" }
        SK { "Slowakije" }
        //SL { "Sierra Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        SO { "Somali\u00EB" }
        //SR { "Suriname" }
        ST { "Sao Tom\u00E9 en Principe" }
        //SV { "El Salvador" }
        SY { "Syri\u00EB" }
        //SZ { "Swaziland" }
        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\u00EB" }
        //TO { "Tonga" }
        TR { "Turkije" }
        TT { "Trinidad en Tobago" }
        //TV { "Tuvalu" }
        //TW { "Taiwan" }
        //TZ { "Tanzania" }
        UA { "Oekra\u00EFne" }
        UG { "Oeganda" }
        UM { "Amerikaanse ondergeschikte 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" }
        YU { "Joegoslavi\u00EB" }
        ZA { "Zuid-Afrika" }
        //ZM { "Zambia" }
        //ZW { "Zimbabwe" }
    }
    // Currency display names
    Currencies {
        BEF { "BF", "BEF" }
        NLG { "fl", "NLG" }
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "H:mm:ss' uur' z",
        "H:mm:ss z",
        "H:mm:ss",
        "H:mm",
        "EEEE d MMMM yyyy",
        "d MMMM yyyy",
        "d-MMM-yyyy",
        "d-M-yy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "zo",
        "ma",
        "di",
        "wo",
        "do",
        "vr",
        "za",
    }
    DayNames { 
        "zondag",
        "maandag",
        "dinsdag",
        "woensdag",
        "donderdag",
        "vrijdag",
        "zaterdag",
    }
    ExemplarCharacters { "[a-z \u00e1 \u00e9 \u00ed \u00f3 \u00fa \u00e4 \u00eb \u00ef \u00f6 \u00fc \u0133]" }
    Languages { 
        Fallback{ "en"}
        ar { "Arabisch" }
        bg { "Bulgaars" }
        cs { "Tsjechisch" }
        da { "Deens" }
        de { "Duits" }
        el { "Grieks" }
        en { "Engels" }
        es { "Spaans" }
        et { "Estlands" }
        fi { "Fins" }
        fr { "Frans" }
        he { "Hebreeuws" }
        hr { "Kroatisch" }
        hu { "Hongaars" }
        it { "Italiaans" }
        ja { "Japans" }
        ko { "Koreaans" }
        lt { "Litouws" }
        lv { "Letlands" }
        nl { "Nederlands" }
        no { "Noors" }
        pl { "Pools" }
        pt { "Portugees" }
        ro { "Roemeens" }
        ru { "Russisch" }
        sk { "Slowaaks" }
        sl { "Sloveens" }
        sv { "Zweeds" }
        tr { "Turks" }
        zh { "Chinees" }
        //zh_cn { "Chinees (Vereenvoudigd)" }
        //zh_tw { "Chinees (Traditioneel)" }
    }
    MonthAbbreviations { 
        "jan",
        "feb",
        "mrt",
        "apr",
        "mei",
        "jun",
        "jul",
        "aug",
        "sep",
        "okt",
        "nov",
        "dec",
    }
    MonthNames { 
        "januari",
        "februari",
        "maart",
        "april",
        "mei",
        "juni",
        "juli",
        "augustus",
        "september",
        "oktober",
        "november",
        "december",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------
//     * Spellout rules for Dutch
    // can someone supply me with information on negatives and decimals?
    SpelloutRules {
        "-x: min >>;\n"
        "x.x: << komma >>;\n"
        "nul; een; twee; drie; vier; vijf; zes; zeven; acht; negen;\n"
        "tien; elf; twaalf; dertien; veertien; vijftien; zestien;\n"
        "zeventien; achtien; negentien;\n"
        "20: [>> en ]twintig;\n"
        "30: [>> en ]dertig;\n"
        "40: [>> en ]veertig;\n"
        "50: [>> en ]vijftig;\n"
        "60: [>> en ]zestig;\n"
        "70: [>> en ]zeventig;\n"
        "80: [>> en ]tachtig;\n"
        "90: [>> en ]negentig;\n"
        "100: << honderd[ >>];\n"
        "1000: << duizend[ >>];\n"
        "1,000,000: << miljoen[ >>];\n"
        "1,000,000,000: << biljoen[ >>];\n"
        "1,000,000,000,000: << triljoen[ >>];\n"
        "1,000,000,000,000,000: =#,##0="
    }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
}
