﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/af.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/af.xml
 */
af{
    Countries{
        AE{"Verenigde Arabiese Emirate"}
        AF{"Afganistan"}
        AG{"Antigua en Barbuda"}
        AL{"Albanië"}
        AM{"Armenië"}
        AR{"Argentinië"}
        AT{"Oostenryk"}
        AU{"Australië"}
        AZ{"Aserbeidjan"}
        BA{"Bosnië en Herzegowina"}
        BD{"Bangladesj"}
        BE{"België"}
        BF{"Boerkina Fasso"}
        BG{"Bulgarye"}
        BH{"Bahrein"}
        BN{"Broenei"}
        BO{"Bolivië"}
        BR{"Brasilië"}
        BT{"Bhoetan"}
        BY{"Wit-Rusland"}
        CA{"Kanada"}
        CF{"Sentraal-Afrikaanse Republiek"}
        CG{"Kongo"}
        CH{"Switserland"}
        CI{"Ivoorkus"}
        CL{"Chili"}
        CM{"Kameroen"}
        CN{"Sjina"}
        CU{"Kuba"}
        CV{"Kaap Verde"}
        CY{"Ciprus"}
        CZ{"Tjeggiese Republiek"}
        DE{"Duitsland"}
        DJ{"Djiboeti"}
        DK{"Denemarke"}
        DO{"Dominikaanse Republiek"}
        DZ{"Algerië"}
        EE{"Estland"}
        EG{"Egipte"}
        EH{"Wes-Sahara"}
        ES{"Spanje"}
        ET{"Ethiopië"}
        FJ{"Fidji"}
        FM{"Mikronesië"}
        FR{"Frankryk"}
        GA{"Gaboen"}
        GB{"Groot-Brittanje"}
        GE{"Georgië"}
        GM{"Gambië"}
        GN{"Guinee"}
        GQ{"Ekwatoriaal-Guinee"}
        GR{"Griekeland"}
        GW{"Guinee-Bissau"}
        HR{"Kroasië"}
        HT{"Haïti"}
        HU{"Hongarye"}
        ID{"Indonesië"}
        IE{"Ierland"}
        IN{"Indië"}
        IQ{"Irak"}
        IS{"Ysland"}
        IT{"Italië"}
        JM{"Jamaika"}
        JO{"Jordanië"}
        JP{"Japan"}
        KE{"Kenia"}
        KG{"Kirgisië"}
        KH{"Kambodja"}
        KM{"Comore"}
        KN{"Saint Kitts en Nevis"}
        KP{"Noord-Korea"}
        KR{"Suid-Korea"}
        KW{"Koeweit"}
        KZ{"Kasakstan"}
        LB{"Libanon"}
        LR{"Liberië"}
        LT{"Litaue"}
        LU{"Luxemburg"}
        LV{"Letland"}
        LY{"Libië"}
        MA{"Marokko"}
        MG{"Madagaskar"}
        MH{"Marshall-eilande"}
        MK{"Macedonië"}
        MN{"Mongolië"}
        MR{"Mouritanië"}
        MV{"Maldive"}
        MX{"Meksiko"}
        MY{"Maleisië"}
        MZ{"Mosambiek"}
        NA{"Namibië"}
        NL{"Nederland"}
        NO{"Noorweë"}
        NR{"Naoeroe"}
        NZ{"Nieu-Seeland"}
        PG{"Papoea Nieu-Guinee"}
        PH{"Filippyne"}
        PL{"Pole"}
        QA{"Katar"}
        RO{"Roemenië"}
        RU{"Rusland"}
        SA{"Saoedi-Arabië"}
        SB{"Solomon Eilande"}
        SC{"Seychelle"}
        SD{"Soedan"}
        SE{"Swede"}
        SG{"Singapoer"}
        SI{"Slowenië"}
        SK{"Slowakye"}
        SO{"Somalië"}
        ST{"Sao Tome en Principe"}
        SV{"Salvador"}
        SY{"Sirië"}
        TD{"Tsjaad"}
        TJ{"Tadjikistan"}
        TM{"Turkmenië"}
        TN{"Tunisië"}
        TO{"Tonga"}
        TR{"Turkye"}
        TT{"Trinidad en Tobago"}
        TZ{"Tanzanië"}
        UA{"Oekraine"}
        US{"Verenigde State van Amerika"}
        UZ{"Oesbekistan"}
        VA{"Vatikaan"}
        VC{"Saint Vincent en die Grenadine"}
        VN{"Viëtnam"}
        YE{"Jemen"}
        ZA{"Suid-Afrika"}
        ZM{"Zambië"}
    }
    Currencies{
        CHF{
            "Fr.",
            "Switserse frank",
        }
        EUR{
            "€",
            "Euro",
        }
        GBP{
            "£",
            "Britse pond",
        }
        ITL{
            "IT₤",
            "Italiaanse lier",
        }
        JPY{
            "JP¥",
            "Japannese jen",
        }
        NAD{
            "N$",
            "Namibiese dollar",
        }
        RUB{
            "RUB",
            "Roebel",
        }
        TRL{
            "TRL",
            "Ou Turkse lier",
        }
        TRY{
            "TL",
            "Turkse lier",
        }
        USD{
            "US$",
            "Amerikaanse dollar",
        }
        XXX{
            "XXX",
            "Onbekende of ongeldige geldeenheid",
        }
        ZAR{
            "R",
            "Rand",
        }
    }
    ExemplarCharacters{"[a á â b-e é è ê ë f-i î ï j-o ô ö p-u û v-z]"}
    Languages{
        af{"Afrikaans"}
        afa{"Ander Afro-Asiaties"}
        am{"Amharies"}
        ar{"Arabies"}
        arc{"Aramees"}
        bg{"Bulgaars"}
        cs{"Tsjeggies"}
        da{"Deens"}
        de{"Duits"}
        egy{"Antieke Egipties"}
        el{"Grieks"}
        en{"Engels"}
        es{"Spaans"}
        es_419{"Latyns-Amerikaanse Spaans"}
        et{"Estnies"}
        fi{"Fins"}
        fr{"Frans"}
        got{"Goties"}
        grc{"Antieke Grieks"}
        he{"Hebreeus"}
        it{"Italiaans"}
        ja{"Japannees"}
        ko{"Koreaans"}
        ku{"Koerdies"}
        nl{"Nederlands"}
        nl_BE{"Vlaams"}
        nn{"Noorweegse Nynorsk"}
        nr{"Suid-Ndebele"}
        pt{"Portugees"}
        pt_BR{"Brasiliaanse Portugees"}
        ro{"Roemeens"}
        ru{"Russies"}
        ss{"Swazi"}
        st{"Suid-Sotho"}
        tk{"Turkmeens"}
        ve{"Venda"}
        xh{"Xhosa"}
        zh{"Sjinees"}
        zu{"Zoeloe"}
    }
    LocaleScript{
        "Latn",
    }
    NumberElements{
        ",",
        " ",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "¤#,##0.00",
        "#,##0%",
        "#E0",
    }
    Version{"1.78"}
    calendar{
        gregorian{
            AmPmMarkers{
                "vm.",
                "nm.",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE dd MMMM y",
                "y MMMM d",
                "y MMM d",
                "yyyy-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "So",
                        "Ma",
                        "Di",
                        "Wo",
                        "Do",
                        "Vr",
                        "Sa",
                    }
                    wide{
                        "Sondag",
                        "Maandag",
                        "Dinsdag",
                        "Woensdag",
                        "Donderdag",
                        "Vrydag",
                        "Saterdag",
                    }
                }
            }
            eras{
                abbreviated{
                    "v.C.",
                    "n.C.",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Januarie",
                        "Februarie",
                        "Maart",
                        "April",
                        "Mei",
                        "Junie",
                        "Julie",
                        "Augustus",
                        "September",
                        "Oktober",
                        "November",
                        "Desember",
                    }
                }
            }
        }
    }
    codePatterns{
        language{"Taal: {0}"}
        script{"Skrif: {0}"}
        territory{"Omgewing: {0}"}
    }
    measurementSystemNames{
        US{"VSA"}
        metric{"Metriek"}
    }
}
