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

af{
    Version { "x0.1" }

    AmPmMarkers { 
            "VM",
            "NM",
    }
    DayAbbreviations { 
            "So",
            "Ma",
            "Di",
            "Wo",
            "Do",
            "Vr",
            "Sa",
    }
    DayNames { 
            "Sondag",
            "Maandag",
            "Dinsdag",
            "Woensdag",
            "Donderdag",
            "Vrydag",
            "Saterdag",
    }
    MonthAbbreviations { 
            "Jan",
            "Feb",
            "Mar",
            "Apr",
            "Mei",
            "Jun",
            "Jul",
            "Aug",
            "Sep",
            "Okt",
            "Nov",
            "Des",
            "",
    }
    MonthNames { 
            "Januarie",
            "Februarie",
            "Maart",
            "April",
            "Mei",
            "Junie",
            "Julie",
            "Augustus",
            "September",
            "Oktober",
            "November",
            "Desember",
            "",
    }

    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221e",
            "\ufffd",
    }
    LocaleID {"36"}
    LocaleScript{ 
                "Latn",  // ISO 15924 Name 
    }
    LocaleString{ "af" }

            // /**************** Info Below is needed ****************/
            // CollationElements{}
            // Countries{}
            // Eras{}
            // Languages{}
            // ShortLanguage { }
            // localPatternChars{}
            //
}
