/*
 *	OLE2NLS library
 *      Breton, France
 *
 * 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,"0493")
LOCVAL(LOCALE_SLANGUAGE,"Brezhoneg")
LOCVAL(LOCALE_SENGLANGUAGE,"Breton")
LOCVAL(LOCALE_SABBREVLANGNAME,"brf")
LOCVAL(LOCALE_SNATIVELANGNAME,"Brezhoneg")
LOCVAL(LOCALE_ICOUNTRY,"33")
LOCVAL(LOCALE_SCOUNTRY,"France")
LOCVAL(LOCALE_SENGCOUNTRY,"France")
LOCVAL(LOCALE_SABBREVCTRYNAME,"FRA")
LOCVAL(LOCALE_SNATIVECTRYNAME,"Bro-C\'haill") 
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"040c") 
LOCVAL(LOCALE_IDEFAULTCOUNTRY,"33")
LOCVAL(LOCALE_IDEFAULTCODEPAGE,"850")
LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"1252")
LOCVAL(LOCALE_SLIST,";")
/* LOCVAL(LOCALE_IMEASURE,"") */
LOCVAL(LOCALE_SDECIMAL,",")
LOCVAL(LOCALE_STHOUSAND," ")
LOCVAL(LOCALE_SGROUPING, "3;0")
LOCVAL(LOCALE_IDIGITS,"2")
LOCVAL(LOCALE_ILZERO,"1")
/* LOCVAL(LOCALE_INEGNUMBER) */
LOCVAL(LOCALE_SNATIVEDIGITS, "0123456789")
LOCVAL(LOCALE_SCURRENCY,"F")
LOCVAL(LOCALE_SINTLSYMBOL, "FRF")
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,"dd/MM/yyyy")
LOCVAL(LOCALE_SLONGDATE,"ddd d MMMM yyyy")
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, "0")
LOCVAL(LOCALE_IMONLZERO, "0")
LOCVAL(LOCALE_S1159, "")
LOCVAL(LOCALE_S2359, "")
LOCVAL(LOCALE_ICALENDARTYPE, "1")
/* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
LOCVAL(LOCALE_IFIRSTDAYOFWEEK, "6")
LOCVAL(LOCALE_IFIRSTWEEKOFYEAR, "0")

LOCVAL(LOCALE_SDAYNAME1,"Lun")
LOCVAL(LOCALE_SDAYNAME2,"Meurzh")
LOCVAL(LOCALE_SDAYNAME3,"Merc\'her")
LOCVAL(LOCALE_SDAYNAME4,"Yaou")
LOCVAL(LOCALE_SDAYNAME5,"Gwener") 
LOCVAL(LOCALE_SDAYNAME6,"Sadorn") 
LOCVAL(LOCALE_SDAYNAME7,"Sul")

LOCVAL(LOCALE_SABBREVDAYNAME1,"Lun") 
LOCVAL(LOCALE_SABBREVDAYNAME2,"Meu") 
LOCVAL(LOCALE_SABBREVDAYNAME3,"Mer") 
LOCVAL(LOCALE_SABBREVDAYNAME4,"Yao") 
LOCVAL(LOCALE_SABBREVDAYNAME5,"Gwe") 
LOCVAL(LOCALE_SABBREVDAYNAME6,"Sad") 
LOCVAL(LOCALE_SABBREVDAYNAME7,"Sul") 

LOCVAL(LOCALE_SMONTHNAME1,"Genver")
LOCVAL(LOCALE_SMONTHNAME2,"C'hwevrer")
LOCVAL(LOCALE_SMONTHNAME3,"Meurzh")
LOCVAL(LOCALE_SMONTHNAME4,"Ebrel")
LOCVAL(LOCALE_SMONTHNAME5,"Mae")
LOCVAL(LOCALE_SMONTHNAME6,"Mezheven")
LOCVAL(LOCALE_SMONTHNAME7,"Gouere")
LOCVAL(LOCALE_SMONTHNAME8,"Eost")
LOCVAL(LOCALE_SMONTHNAME9,"Gwengolo")
LOCVAL(LOCALE_SMONTHNAME10,"Here")
LOCVAL(LOCALE_SMONTHNAME11,"Du")
LOCVAL(LOCALE_SMONTHNAME12,"Kerzu")
/* LOCVAL(LOCALE_SMONTHNAME13,"") */
  
LOCVAL(LOCALE_SABBREVMONTHNAME1,"Gen")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"C\'h")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"Meu")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"Ebr")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mae")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"Mez")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"Gou")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"Eos")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"Gwe")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"Her")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"Du")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"Ker")
/* LOCVAL(LOCALE_SABBREVMONTHNAME13,"") */

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