/*
 *	OLE2NLS library
 *      Basque
 *
 *	email: srtxg@chanae.alphanet.ch
 *
 * 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,"042d")
LOCVAL(LOCALE_SLANGUAGE,"Euskara")
LOCVAL(LOCALE_SENGLANGUAGE,"Basque")
LOCVAL(LOCALE_SABBREVLANGNAME,"euq")
LOCVAL(LOCALE_SNATIVELANGNAME,"Euskara")
LOCVAL(LOCALE_ICOUNTRY,"34")
LOCVAL(LOCALE_SCOUNTRY,"Espainia")
LOCVAL(LOCALE_SENGCOUNTRY,"Spain (Basque)")
LOCVAL(LOCALE_SABBREVCTRYNAME,"ESP")
LOCVAL(LOCALE_SNATIVECTRYNAME,"Espainia")
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"04d2")
LOCVAL(LOCALE_IDEFAULTCOUNTRY,"34")
LOCVAL(LOCALE_IDEFAULTCODEPAGE,"850")
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,"Pts")
LOCVAL(LOCALE_SINTLSYMBOL, "ESP")
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,"yyyy-MM-dd")
LOCVAL(LOCALE_SLONGDATE,"ddd, yyyyko MMMMren d.a")
LOCVAL(LOCALE_STIMEFORMAT, "HH:mm:ss")
/* 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,"astelehena")
LOCVAL(LOCALE_SDAYNAME2,"asteartea")
LOCVAL(LOCALE_SDAYNAME3,"asteazkena")
LOCVAL(LOCALE_SDAYNAME4,"osteguna")
LOCVAL(LOCALE_SDAYNAME5,"ostirala")
LOCVAL(LOCALE_SDAYNAME6,"larunbata")
LOCVAL(LOCALE_SDAYNAME7,"igandea")

LOCVAL(LOCALE_SABBREVDAYNAME1,"leh")
LOCVAL(LOCALE_SABBREVDAYNAME2,"art")
LOCVAL(LOCALE_SABBREVDAYNAME3,"azk")
LOCVAL(LOCALE_SABBREVDAYNAME4,"teg")
LOCVAL(LOCALE_SABBREVDAYNAME5,"tir")
LOCVAL(LOCALE_SABBREVDAYNAME6,"lar")
LOCVAL(LOCALE_SABBREVDAYNAME7,"iga")

LOCVAL(LOCALE_SMONTHNAME1,"urtarrila")
LOCVAL(LOCALE_SMONTHNAME2,"otsaila")
LOCVAL(LOCALE_SMONTHNAME3,"martxoa")
LOCVAL(LOCALE_SMONTHNAME4,"apirila")
LOCVAL(LOCALE_SMONTHNAME5,"maiatza")
LOCVAL(LOCALE_SMONTHNAME6,"ekaina")
LOCVAL(LOCALE_SMONTHNAME7,"uztaila")
LOCVAL(LOCALE_SMONTHNAME8,"abuztua")
LOCVAL(LOCALE_SMONTHNAME9,"iraila")
LOCVAL(LOCALE_SMONTHNAME10,"urria")
LOCVAL(LOCALE_SMONTHNAME11,"azaroa")
LOCVAL(LOCALE_SMONTHNAME12,"abendua")
LOCVAL(LOCALE_SMONTHNAME13,"")

LOCVAL(LOCALE_SABBREVMONTHNAME1,"urt")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"ots")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"mar")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"api")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"mai")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"eka")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"uzt")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"abu")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"ira")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"urr")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"aza")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"abe")
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,"eu")
LOCVAL(LOCALE_SISO3166CTRYNAME,"ES")

