/*
 *	OLE2NLS library
 *      Dutch (Surinam ?)
 *
 *	The code for Dutch/Surinam doesn't appear on my docs;
 *	It should be something + 0x13 as 0x13 is the Dutch language;
 *	Following the same logic as other multi-coutries languages
 *	I picked 0x0c13 for Surinam/Dutch.
 */

LOCVAL(LOCALE_ILANGUAGE,"0c13")
/* LOCVAL(LOCALE_SLANGUAGE,"") */
LOCVAL(LOCALE_SENGLANGUAGE,"Dutch (Suriname)")
LOCVAL(LOCALE_SABBREVLANGNAME,"nls")
/* LOCVAL(LOCALE_SNATIVELANGNAME,"") */
/* LOCVAL(LOCALE_ICOUNTRY,"") */
/* LOCVAL(LOCALE_SCOUNTRY,"") */
LOCVAL(LOCALE_SENGCOUNTRY,"Suriname")
LOCVAL(LOCALE_SABBREVCTRYNAME,"SUR")
/* LOCVAL(LOCALE_SNATIVECTRYNAME,"") */
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"0413")
/* LOCVAL(LOCALE_IDEFAULTCOUNTRY,"") */
LOCVAL(LOCALE_IDEFAULTCODEPAGE,"850")
LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"1252")
/* 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) */
/* LOCVAL(LOCALE_SCURRENCY,"") */
LOCVAL(LOCALE_SINTLSYMBOL,"SRG")
/* LOCVAL(LOCALE_SMONDECIMALSEP,",") */
/* LOCVAL(LOCALE_SMONTHOUSANDSEP,".") */
/* LOCVAL(LOCALE_SMONGROUPING) */
/* 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,"vrijdag")
LOCVAL(LOCALE_SDAYNAME6,"zaterdag")
LOCVAL(LOCALE_SDAYNAME7,"zondag")

LOCVAL(LOCALE_SABBREVDAYNAME1,"ma")
LOCVAL(LOCALE_SABBREVDAYNAME2,"di")
LOCVAL(LOCALE_SABBREVDAYNAME3,"wo")
LOCVAL(LOCALE_SABBREVDAYNAME4,"do")
LOCVAL(LOCALE_SABBREVDAYNAME5,"vr")
LOCVAL(LOCALE_SABBREVDAYNAME6,"za")
LOCVAL(LOCALE_SABBREVDAYNAME7,"zo")

LOCVAL(LOCALE_SMONTHNAME1,"januar")
LOCVAL(LOCALE_SMONTHNAME2,"februari")
LOCVAL(LOCALE_SMONTHNAME3,"maart")
LOCVAL(LOCALE_SMONTHNAME4,"april")
LOCVAL(LOCALE_SMONTHNAME5,"mei")
LOCVAL(LOCALE_SMONTHNAME6,"juni")
LOCVAL(LOCALE_SMONTHNAME7,"juli")
LOCVAL(LOCALE_SMONTHNAME8,"augustus")
LOCVAL(LOCALE_SMONTHNAME9,"september")
LOCVAL(LOCALE_SMONTHNAME10,"oktober")
LOCVAL(LOCALE_SMONTHNAME11,"november")
LOCVAL(LOCALE_SMONTHNAME12,"december")
LOCVAL(LOCALE_SMONTHNAME13,"")

LOCVAL(LOCALE_SABBREVMONTHNAME1,"jan")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"feb")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"mrt")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"apr")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"mei")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"jun")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"jul")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"aug")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"sep")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"okt")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"nov")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"dec")
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,"nl")
LOCVAL(LOCALE_SISO3166CTRYNAME,"SR")

/* Gregorianse kalender */
