/*
 *	OLE2NLS library
 *      Afrikaans (South Africa)
 *
 * Copyright 1998 Marcel Baur
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

LOCVAL(LOCALE_ILANGUAGE,"0436")
/* LOCVAL(LOCALE_SLANGUAGE,"") */
LOCVAL(LOCALE_SENGLANGUAGE,"Afrikaans")
LOCVAL(LOCALE_SABBREVLANGNAME,"afk")
LOCVAL(LOCALE_SNATIVELANGNAME,"Afrikaans")
/* LOCVAL(LOCALE_ICOUNTRY,"") */
/* LOCVAL(LOCALE_SCOUNTRY,"") */
LOCVAL(LOCALE_SENGCOUNTRY,"South Africa")
LOCVAL(LOCALE_SABBREVCTRYNAME,"ZAF")
LOCVAL(LOCALE_SNATIVECTRYNAME,"Suid Afrika")
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"0436")
/* LOCVAL(LOCALE_IDEFAULTCOUNTRY,"") */
/* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"1252")
LOCVAL(LOCALE_IDEFAULTMACCODEPAGE, "10000")
/* LOCVAL(LOCALE_SLIST,"") */
/* LOCVAL(LOCALE_IMEASURE,"") */
/* LOCVAL(LOCALE_SDECIMAL,"") */
/* LOCVAL(LOCALE_STHOUSAND,"") */
/* LOCVAL(LOCALE_SGROUPING) */
/* LOCVAL(LOCALE_IDIGITS,"2") */
/* LOCVAL(LOCALE_ILZERO,"1") */
/* LOCVAL(LOCALE_INEGNUMBER) */
LOCVAL(LOCALE_SNATIVEDIGITS,"0123456789")
/* LOCVAL(LOCALE_SCURRENCY,"") */
LOCVAL(LOCALE_SINTLSYMBOL,"ZAR")
/* LOCVAL(LOCALE_SMONDECIMALSEP,",") */
/* LOCVAL(LOCALE_SMONTHOUSANDSEP,".") */
LOCVAL(LOCALE_SMONGROUPING,"3;0")
/* LOCVAL(LOCALE_ICURRDIGITS,"2") */
/* LOCVAL(LOCALE_IINTLCURRDIGITS) */
/* LOCVAL(LOCALE_ICURRENCY,"3") */
/* LOCVAL(LOCALE_INEGCURR,"8") */
/* LOCVAL(LOCALE_SDATE,".") */
/* LOCVAL(LOCALE_STIME,":") */
/* LOCVAL(LOCALE_SSHORTDATE,"dd/MM-yyyy") */
/* LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy") */
/* LOCVAL(LOCALE_STIMEFORMAT) */
/* LOCVAL(LOCALE_IDATE,"1") */
/* LOCVAL(LOCALE_ILDATE) */
LOCVAL(LOCALE_ITIME,"1")
/* LOCVAL(LOCALE_ITIMEMARKPOSN) */
/* LOCVAL(LOCALE_ICENTURY) */
LOCVAL(LOCALE_ITLZERO,"1")
/* LOCVAL(LOCALE_IDAYLZERO) */
/* LOCVAL(LOCALE_IMONLZERO) */
/* LOCVAL(LOCALE_S1159, "") */
/* LOCVAL(LOCALE_S2359, "") */
LOCVAL(LOCALE_ICALENDARTYPE,"1")
/* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
/* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
/* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */

LOCVAL(LOCALE_SDAYNAME1,"Maandag")
LOCVAL(LOCALE_SDAYNAME2,"Dinsdag")
LOCVAL(LOCALE_SDAYNAME3,"Woensdag")
LOCVAL(LOCALE_SDAYNAME4,"Donderdag")
LOCVAL(LOCALE_SDAYNAME5,"Vrydag")
LOCVAL(LOCALE_SDAYNAME6,"Saterdag")
LOCVAL(LOCALE_SDAYNAME7,"Sondag")

LOCVAL(LOCALE_SABBREVDAYNAME1,"Maan")
LOCVAL(LOCALE_SABBREVDAYNAME2,"Dins")
LOCVAL(LOCALE_SABBREVDAYNAME3,"Woen")
LOCVAL(LOCALE_SABBREVDAYNAME4,"Dond")
LOCVAL(LOCALE_SABBREVDAYNAME5,"Vry")
LOCVAL(LOCALE_SABBREVDAYNAME6,"Sat")
LOCVAL(LOCALE_SABBREVDAYNAME7,"Son")

LOCVAL(LOCALE_SMONTHNAME1,"Januarie")
LOCVAL(LOCALE_SMONTHNAME2,"Februarie")
LOCVAL(LOCALE_SMONTHNAME3,"Maart")
LOCVAL(LOCALE_SMONTHNAME4,"April")
LOCVAL(LOCALE_SMONTHNAME5,"Mei")
LOCVAL(LOCALE_SMONTHNAME6,"Junie")
LOCVAL(LOCALE_SMONTHNAME7,"Julie")
LOCVAL(LOCALE_SMONTHNAME8,"Augustus")
LOCVAL(LOCALE_SMONTHNAME9,"September")
LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
LOCVAL(LOCALE_SMONTHNAME11,"November")
LOCVAL(LOCALE_SMONTHNAME12,"Desember")
LOCVAL(LOCALE_SMONTHNAME13,"")

/* LOCVAL(LOCALE_SABBREVMONTHNAME1,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME2,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME3,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME4,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME5,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME6,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME7,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME8,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME9,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME10,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME11,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME12,"") */
/* LOCVAL(LOCALE_SABBREVMONTHNAME13,"") */

/* LOCVAL(LOCALE_SPOSITIVESIGN, "") */
/* LOCVAL(LOCALE_SNEGATIVESIGN, "") */
/* LOCVAL(LOCALE_IPOSSIGNPOSN, "") */
/* LOCVAL(LOCALE_INEGSIGNPOSN, "") */
/* LOCVAL(LOCALE_IPOSSYMPRECEDES, "") */
/* LOCVAL(LOCALE_IPOSSEPBYSPACE, "") */
/* LOCVAL(LOCALE_INEGSYMPRECEDES, "") */
/* LOCVAL(LOCALE_INEGSEPBYSPACE, "") */
/* LOCVAL(LOCALE_FONTSIGNATURE, "") */
LOCVAL(LOCALE_SISO639LANGNAME,"af")
LOCVAL(LOCALE_SISO3166CTRYNAME,"ZA")

