/*
 *	OLE2NLS library
 *      Korean
 *      string using codepage 949
 *
 * 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,"0412")
LOCVAL(LOCALE_SLANGUAGE,"\307\321\261\271\276\356")
LOCVAL(LOCALE_SENGLANGUAGE,"Korean")
LOCVAL(LOCALE_SABBREVLANGNAME,"kor")
LOCVAL(LOCALE_SNATIVELANGNAME,"\307\321\261\271\276\356")
LOCVAL(LOCALE_ICOUNTRY,"82")
LOCVAL(LOCALE_SCOUNTRY,"\264\353\307\321\271\316\261\271")
LOCVAL(LOCALE_SENGCOUNTRY,"Korea (South)")
LOCVAL(LOCALE_SABBREVCTRYNAME,"KOR")
LOCVAL(LOCALE_SNATIVECTRYNAME,"\264\353\307\321\271\316\261\271")
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"0412")
LOCVAL(LOCALE_IDEFAULTCOUNTRY,"82")
LOCVAL(LOCALE_IDEFAULTCODEPAGE,"949")
LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"949")
LOCVAL(LOCALE_SLIST,",")
LOCVAL(LOCALE_IMEASURE,"0")
LOCVAL(LOCALE_SDECIMAL,".")
LOCVAL(LOCALE_STHOUSAND,",")
LOCVAL(LOCALE_SGROUPING,"3;0")
LOCVAL(LOCALE_IDIGITS,"2")
LOCVAL(LOCALE_ILZERO,"0")
LOCVAL(LOCALE_INEGNUMBER,"1")
LOCVAL(LOCALE_SNATIVEDIGITS,"0123456789")
LOCVAL(LOCALE_SCURRENCY,"\\")
LOCVAL(LOCALE_SINTLSYMBOL,"KRW")
LOCVAL(LOCALE_SMONDECIMALSEP,".")
LOCVAL(LOCALE_SMONTHOUSANDSEP,",")
LOCVAL(LOCALE_SMONGROUPING,"3;0")
LOCVAL(LOCALE_ICURRDIGITS,"2")
LOCVAL(LOCALE_IINTLCURRDIGITS,"2")
LOCVAL(LOCALE_ICURRENCY,"3")
LOCVAL(LOCALE_INEGCURR,"8")
LOCVAL(LOCALE_SDATE,"/")
LOCVAL(LOCALE_STIME,":")
LOCVAL(LOCALE_SSHORTDATE,"yyyy/MM/dd")
LOCVAL(LOCALE_SLONGDATE,"yyyy/MM/dd")
LOCVAL(LOCALE_STIMEFORMAT,"h:mm:ss tt")
LOCVAL(LOCALE_IDATE,"1")
LOCVAL(LOCALE_ILDATE,"1")
LOCVAL(LOCALE_ITIME,"1")
LOCVAL(LOCALE_ITIMEMARKPOSN,"0")
LOCVAL(LOCALE_ICENTURY,"0")
LOCVAL(LOCALE_ITLZERO,"0")
LOCVAL(LOCALE_IDAYLZERO,"0")
LOCVAL(LOCALE_IMONLZERO,"0")
LOCVAL(LOCALE_S1159,"\277\300\300\374")
LOCVAL(LOCALE_S2359,"\277\300\310\304")
LOCVAL(LOCALE_ICALENDARTYPE,"1")
/* Korean Tangun Era calendar */
LOCVAL(LOCALE_IOPTIONALCALENDAR,"5")
LOCVAL(LOCALE_IFIRSTDAYOFWEEK,"6")
LOCVAL(LOCALE_IFIRSTWEEKOFYEAR,"0")

LOCVAL(LOCALE_SDAYNAME1,"\277\371\277\344\300\317")
LOCVAL(LOCALE_SDAYNAME2,"\310\255\277\344\300\317")
LOCVAL(LOCALE_SDAYNAME3,"\274\366\277\344\300\317")
LOCVAL(LOCALE_SDAYNAME4,"\270\361\277\344\300\317")
LOCVAL(LOCALE_SDAYNAME5,"\261\335\277\344\300\317")
LOCVAL(LOCALE_SDAYNAME6,"\305\344\277\344\300\317")
LOCVAL(LOCALE_SDAYNAME7,"\300\317\277\344\300\317")

LOCVAL(LOCALE_SABBREVDAYNAME1,"\277\371")
LOCVAL(LOCALE_SABBREVDAYNAME2,"\310\255")
LOCVAL(LOCALE_SABBREVDAYNAME3,"\274\366")
LOCVAL(LOCALE_SABBREVDAYNAME4,"\270\361")
LOCVAL(LOCALE_SABBREVDAYNAME5,"\261\335")
LOCVAL(LOCALE_SABBREVDAYNAME6,"\305\344")
LOCVAL(LOCALE_SABBREVDAYNAME7,"\300\317")

LOCVAL(LOCALE_SMONTHNAME1,"1\277\371")
LOCVAL(LOCALE_SMONTHNAME2,"2\277\371")
LOCVAL(LOCALE_SMONTHNAME3,"3\277\371")
LOCVAL(LOCALE_SMONTHNAME4,"4\277\371")
LOCVAL(LOCALE_SMONTHNAME5,"5\277\371")
LOCVAL(LOCALE_SMONTHNAME6,"6\277\371")
LOCVAL(LOCALE_SMONTHNAME7,"7\277\371")
LOCVAL(LOCALE_SMONTHNAME8,"8\277\371")
LOCVAL(LOCALE_SMONTHNAME9,"9\277\371")
LOCVAL(LOCALE_SMONTHNAME10,"10\277\371")
LOCVAL(LOCALE_SMONTHNAME11,"11\277\371")
LOCVAL(LOCALE_SMONTHNAME12,"12\277\371")
LOCVAL(LOCALE_SMONTHNAME13,"")

LOCVAL(LOCALE_SABBREVMONTHNAME1,"1\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"2\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"3\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"4\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"5\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"6\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"7\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"8\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"9\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"10\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"11\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"12\277\371")
LOCVAL(LOCALE_SABBREVMONTHNAME13,"")

LOCVAL(LOCALE_SPOSITIVESIGN,"")
LOCVAL(LOCALE_SNEGATIVESIGN,"-")
LOCVAL(LOCALE_IPOSSIGNPOSN,"3")
LOCVAL(LOCALE_INEGSIGNPOSN,"0")
LOCVAL(LOCALE_IPOSSYMPRECEDES,"3")
LOCVAL(LOCALE_IPOSSEPBYSPACE,"0")
LOCVAL(LOCALE_INEGSYMPRECEDES,"3")
LOCVAL(LOCALE_INEGSEPBYSPACE,"0")
/* LOCVAL(LOCALE_FONTSIGNATURE, "") */
LOCVAL(LOCALE_SISO639LANGNAME,"ko")
LOCVAL(LOCALE_SISO3166CTRYNAME,"KR")

