/*
 *	OLE2NLS library
 *      Poland
 *	(Polish strings in cp1250)
 *
 * 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,"0415")
LOCVAL(LOCALE_SLANGUAGE,"Polski")
LOCVAL(LOCALE_SENGLANGUAGE,"Polish")
LOCVAL(LOCALE_SABBREVLANGNAME, "plk")
LOCVAL(LOCALE_SNATIVELANGNAME,"Polski")
LOCVAL(LOCALE_ICOUNTRY,"49")
LOCVAL(LOCALE_SCOUNTRY,"Polska")
LOCVAL(LOCALE_SENGCOUNTRY,"Poland")
LOCVAL(LOCALE_SABBREVCTRYNAME,"POL")
LOCVAL(LOCALE_SNATIVECTRYNAME,"Polska")
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"0415")
LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49")
LOCVAL(LOCALE_IDEFAULTCODEPAGE,"852")
LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"1250")
LOCVAL(LOCALE_IDEFAULTMACCODEPAGE, "10029")
LOCVAL(LOCALE_SLIST,";")
LOCVAL(LOCALE_IMEASURE,"0")
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,"z\xB3")
LOCVAL(LOCALE_SINTLSYMBOL,"PLZ")
/* 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,"Poniedzia\263ek")
LOCVAL(LOCALE_SDAYNAME2,"Wtorek")
LOCVAL(LOCALE_SDAYNAME3,"\214roda")
LOCVAL(LOCALE_SDAYNAME4,"Czwartek")
LOCVAL(LOCALE_SDAYNAME5,"Pi\271tek")
LOCVAL(LOCALE_SDAYNAME6,"Sobota")
LOCVAL(LOCALE_SDAYNAME7,"Niedziela")

LOCVAL(LOCALE_SABBREVDAYNAME1,"Po")
LOCVAL(LOCALE_SABBREVDAYNAME2,"Wt")
LOCVAL(LOCALE_SABBREVDAYNAME3,"Sr")
LOCVAL(LOCALE_SABBREVDAYNAME4,"Cz")
LOCVAL(LOCALE_SABBREVDAYNAME5,"Pt")
LOCVAL(LOCALE_SABBREVDAYNAME6,"So")
LOCVAL(LOCALE_SABBREVDAYNAME7,"Ni")

LOCVAL(LOCALE_SMONTHNAME1,"Stycze\xF1")
LOCVAL(LOCALE_SMONTHNAME2,"Luty")
LOCVAL(LOCALE_SMONTHNAME3,"Marzec")
LOCVAL(LOCALE_SMONTHNAME4,"Kwiecie\xF1")
LOCVAL(LOCALE_SMONTHNAME5,"Maj")
LOCVAL(LOCALE_SMONTHNAME6,"Czerwiec")
LOCVAL(LOCALE_SMONTHNAME7,"Lipiec")
LOCVAL(LOCALE_SMONTHNAME8,"Sierpie\xF1")
LOCVAL(LOCALE_SMONTHNAME9,"Wrzesie\xF1")
LOCVAL(LOCALE_SMONTHNAME10,"Pa\237dziernik")
LOCVAL(LOCALE_SMONTHNAME11,"Listapad")
LOCVAL(LOCALE_SMONTHNAME12,"Grudzie\xF1")
LOCVAL(LOCALE_SMONTHNAME13,"")

LOCVAL(LOCALE_SABBREVMONTHNAME1,"Sty")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"Lut")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mar")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"Kwi")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"Maj")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"Cze")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"Lip")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"Sie")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"Wrz")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"Pa\237")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"Lis")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"Gru")
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,"pl")
LOCVAL(LOCALE_SISO3166CTRYNAME,"PL")

/* kalendarz gregoria?dski */
