/*
 *	OLE2NLS library
 *      Norway (Nynorsk)
 *
 * 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,"0814")
LOCVAL(LOCALE_SLANGUAGE,"Norwegian (Nynorsk)")
LOCVAL(LOCALE_SENGLANGUAGE,"Norwegian")
LOCVAL(LOCALE_SABBREVLANGNAME,"non")
LOCVAL(LOCALE_SNATIVELANGNAME,"nynorsk")
LOCVAL(LOCALE_ICOUNTRY,"47")
LOCVAL(LOCALE_SCOUNTRY,"Noreg")
LOCVAL(LOCALE_SENGCOUNTRY,"Norway")
LOCVAL(LOCALE_SABBREVCTRYNAME,"NOR")
LOCVAL(LOCALE_SNATIVECTRYNAME,"Noreg")
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"0814")
LOCVAL(LOCALE_IDEFAULTCOUNTRY,"47")
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,"kr")
LOCVAL(LOCALE_SINTLSYMBOL,"NOK")
/* 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,"m?ndag")
LOCVAL(LOCALE_SDAYNAME2,"tysdag")
LOCVAL(LOCALE_SDAYNAME3,"fredag")
LOCVAL(LOCALE_SDAYNAME4,"onsdag")
LOCVAL(LOCALE_SDAYNAME5,"torsdag")
LOCVAL(LOCALE_SDAYNAME6,"laurdag")
LOCVAL(LOCALE_SDAYNAME7,"sundag")

LOCVAL(LOCALE_SABBREVDAYNAME1,"m?")
LOCVAL(LOCALE_SABBREVDAYNAME2,"ty")
LOCVAL(LOCALE_SABBREVDAYNAME3,"fr")
LOCVAL(LOCALE_SABBREVDAYNAME4,"on")
LOCVAL(LOCALE_SABBREVDAYNAME5,"to")
LOCVAL(LOCALE_SABBREVDAYNAME6,"lau")
LOCVAL(LOCALE_SABBREVDAYNAME7,"su")

LOCVAL(LOCALE_SMONTHNAME1,"januar") 
LOCVAL(LOCALE_SMONTHNAME2,"februar")
LOCVAL(LOCALE_SMONTHNAME3,"mars")
LOCVAL(LOCALE_SMONTHNAME4,"april")
LOCVAL(LOCALE_SMONTHNAME5,"mai")
LOCVAL(LOCALE_SMONTHNAME6,"juni")
LOCVAL(LOCALE_SMONTHNAME7,"juli")
LOCVAL(LOCALE_SMONTHNAME8,"august")
LOCVAL(LOCALE_SMONTHNAME9,"september")
LOCVAL(LOCALE_SMONTHNAME10,"oktober")
LOCVAL(LOCALE_SMONTHNAME11,"november")
LOCVAL(LOCALE_SMONTHNAME12,"desember")
LOCVAL(LOCALE_SMONTHNAME13,"")

LOCVAL(LOCALE_SABBREVMONTHNAME1,"jan")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"feb")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"mar")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"apr")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"mai")
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,"des")
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,"no")
LOCVAL(LOCALE_SISO3166CTRYNAME,"NO")

/* gregoriansk kalender */
