4 * Copyright 1995 Martin von Loewis
5 * Copyright 1998 David Lee Lambert
21 /* Locale name to id map. used by EnumSystemLocales, GetLocalInfoA
22 * MUST contain all #defines from winnls.h
23 * last entry has NULL name, 0 id.
25 #define LOCALE_ENTRY(x) {#x,LOCALE_##x}
26 static struct tagLOCALE_NAME2ID
{
30 LOCALE_ENTRY(ILANGUAGE
),
31 LOCALE_ENTRY(SLANGUAGE
),
32 LOCALE_ENTRY(SENGLANGUAGE
),
33 LOCALE_ENTRY(SABBREVLANGNAME
),
34 LOCALE_ENTRY(SNATIVELANGNAME
),
35 LOCALE_ENTRY(ICOUNTRY
),
36 LOCALE_ENTRY(SCOUNTRY
),
37 LOCALE_ENTRY(SENGCOUNTRY
),
38 LOCALE_ENTRY(SABBREVCTRYNAME
),
39 LOCALE_ENTRY(SNATIVECTRYNAME
),
40 LOCALE_ENTRY(IDEFAULTLANGUAGE
),
41 LOCALE_ENTRY(IDEFAULTCOUNTRY
),
42 LOCALE_ENTRY(IDEFAULTCODEPAGE
),
43 LOCALE_ENTRY(IDEFAULTANSICODEPAGE
),
45 LOCALE_ENTRY(IMEASURE
),
46 LOCALE_ENTRY(SDECIMAL
),
47 LOCALE_ENTRY(STHOUSAND
),
48 LOCALE_ENTRY(SGROUPING
),
49 LOCALE_ENTRY(IDIGITS
),
51 LOCALE_ENTRY(INEGNUMBER
),
52 LOCALE_ENTRY(SNATIVEDIGITS
),
53 LOCALE_ENTRY(SCURRENCY
),
54 LOCALE_ENTRY(SINTLSYMBOL
),
55 LOCALE_ENTRY(SMONDECIMALSEP
),
56 LOCALE_ENTRY(SMONTHOUSANDSEP
),
57 LOCALE_ENTRY(SMONGROUPING
),
58 LOCALE_ENTRY(ICURRDIGITS
),
59 LOCALE_ENTRY(IINTLCURRDIGITS
),
60 LOCALE_ENTRY(ICURRENCY
),
61 LOCALE_ENTRY(INEGCURR
),
64 LOCALE_ENTRY(SSHORTDATE
),
65 LOCALE_ENTRY(SLONGDATE
),
66 LOCALE_ENTRY(STIMEFORMAT
),
70 LOCALE_ENTRY(ITIMEMARKPOSN
),
71 LOCALE_ENTRY(ICENTURY
),
72 LOCALE_ENTRY(ITLZERO
),
73 LOCALE_ENTRY(IDAYLZERO
),
74 LOCALE_ENTRY(IMONLZERO
),
77 LOCALE_ENTRY(ICALENDARTYPE
),
78 LOCALE_ENTRY(IOPTIONALCALENDAR
),
79 LOCALE_ENTRY(IFIRSTDAYOFWEEK
),
80 LOCALE_ENTRY(IFIRSTWEEKOFYEAR
),
81 LOCALE_ENTRY(SDAYNAME1
),
82 LOCALE_ENTRY(SDAYNAME2
),
83 LOCALE_ENTRY(SDAYNAME3
),
84 LOCALE_ENTRY(SDAYNAME4
),
85 LOCALE_ENTRY(SDAYNAME5
),
86 LOCALE_ENTRY(SDAYNAME6
),
87 LOCALE_ENTRY(SDAYNAME7
),
88 LOCALE_ENTRY(SABBREVDAYNAME1
),
89 LOCALE_ENTRY(SABBREVDAYNAME2
),
90 LOCALE_ENTRY(SABBREVDAYNAME3
),
91 LOCALE_ENTRY(SABBREVDAYNAME4
),
92 LOCALE_ENTRY(SABBREVDAYNAME5
),
93 LOCALE_ENTRY(SABBREVDAYNAME6
),
94 LOCALE_ENTRY(SABBREVDAYNAME7
),
95 LOCALE_ENTRY(SMONTHNAME1
),
96 LOCALE_ENTRY(SMONTHNAME2
),
97 LOCALE_ENTRY(SMONTHNAME3
),
98 LOCALE_ENTRY(SMONTHNAME4
),
99 LOCALE_ENTRY(SMONTHNAME5
),
100 LOCALE_ENTRY(SMONTHNAME6
),
101 LOCALE_ENTRY(SMONTHNAME7
),
102 LOCALE_ENTRY(SMONTHNAME8
),
103 LOCALE_ENTRY(SMONTHNAME9
),
104 LOCALE_ENTRY(SMONTHNAME10
),
105 LOCALE_ENTRY(SMONTHNAME11
),
106 LOCALE_ENTRY(SMONTHNAME12
),
107 LOCALE_ENTRY(SMONTHNAME13
),
108 LOCALE_ENTRY(SABBREVMONTHNAME1
),
109 LOCALE_ENTRY(SABBREVMONTHNAME2
),
110 LOCALE_ENTRY(SABBREVMONTHNAME3
),
111 LOCALE_ENTRY(SABBREVMONTHNAME4
),
112 LOCALE_ENTRY(SABBREVMONTHNAME5
),
113 LOCALE_ENTRY(SABBREVMONTHNAME6
),
114 LOCALE_ENTRY(SABBREVMONTHNAME7
),
115 LOCALE_ENTRY(SABBREVMONTHNAME8
),
116 LOCALE_ENTRY(SABBREVMONTHNAME9
),
117 LOCALE_ENTRY(SABBREVMONTHNAME10
),
118 LOCALE_ENTRY(SABBREVMONTHNAME11
),
119 LOCALE_ENTRY(SABBREVMONTHNAME12
),
120 LOCALE_ENTRY(SABBREVMONTHNAME13
),
121 LOCALE_ENTRY(SPOSITIVESIGN
),
122 LOCALE_ENTRY(SNEGATIVESIGN
),
123 LOCALE_ENTRY(IPOSSIGNPOSN
),
124 LOCALE_ENTRY(INEGSIGNPOSN
),
125 LOCALE_ENTRY(IPOSSYMPRECEDES
),
126 LOCALE_ENTRY(IPOSSEPBYSPACE
),
127 LOCALE_ENTRY(INEGSYMPRECEDES
),
128 LOCALE_ENTRY(INEGSEPBYSPACE
),
129 /* LOCALE_ENTRY(FONTSIGNATURE),*/
133 const struct map_lcid2str
{
135 const char *langname
;
138 {0x0402,"Bulgarisch"},
139 {0x0403,"Katalanisch"},
140 {0x0404,"Traditionales Chinesisch"},
141 {0x0405,"Tschecisch"},
144 {0x0408,"Griechisch"},
145 {0x0409,"Amerikanisches Englisch"},
146 {0x040A,"Kastilisches Spanisch"},
148 {0x040C,"Franzvsisch"},
149 {0x040D,"Hebrdisch"},
150 {0x040E,"Ungarisch"},
151 {0x040F,"Isldndisch"},
152 {0x0410,"Italienisch"},
153 {0x0411,"Japanisch"},
154 {0x0412,"Koreanisch"},
155 {0x0413,"Niederldndisch"},
156 {0x0414,"Norwegisch-Bokmal"},
158 {0x0416,"Brasilianisches Portugiesisch"},
159 {0x0417,"Rdtoromanisch"},
160 {0x0418,"Rumdnisch"},
162 {0x041A,"Kroatoserbisch (lateinisch)"},
163 {0x041B,"Slowenisch"},
164 {0x041C,"Albanisch"},
165 {0x041D,"Schwedisch"},
170 {0x0804,"Vereinfachtes Chinesisch"},
171 {0x0807,"Schweizerdeutsch"},
172 {0x0809,"Britisches Englisch"},
173 {0x080A,"Mexikanisches Spanisch"},
174 {0x080C,"Belgisches Franzvsisch"},
175 {0x0810,"Schweizerisches Italienisch"},
176 {0x0813,"Belgisches Niederldndisch"},
177 {0x0814,"Norgwegisch-Nynorsk"},
178 {0x0816,"Portugiesisch"},
179 {0x081A,"Serbokratisch (kyrillisch)"},
180 {0x0C1C,"Kanadisches Franzvsisch"},
181 {0x100C,"Schweizerisches Franzvsisch"},
182 {0x0000,"Unbekannt"},
185 /***********************************************************************
186 * GetUserDefaultLCID (OLE2NLS.1)
188 LCID WINAPI
GetUserDefaultLCID()
190 /* Default sorting, neutral sublanguage */
191 switch(Options
.language
)
193 /* case LANG_Bu: return 0x02; */ /* Bulgarian */
194 /* case LANG_Ch: return 0x04; */ /* Chinese */
195 case LANG_Cz
: return 0x05; /* Czech */
196 case LANG_Da
: return 0x06; /* Danish */
197 case LANG_De
: return 0x07; /* German */
198 /* case LANG_Gr: return 0x08; */ /* Greek */
199 case LANG_En
: return 0x09; /* English */
200 case LANG_Es
: return 0x0a; /* Spanish */
201 case LANG_Fi
: return 0x0b; /* Finnish */
202 case LANG_Fr
: return 0x0c; /* French */
203 case LANG_Hu
: return 0x0e; /* Hungarian */
204 /* case LANG_Ic: return 0x0f; */ /* Icelandic */
205 case LANG_It
: return 0x10; /* Italian */
206 /* case LANG_Jp: return 0x11; */ /* Japanese */
207 case LANG_Ko
: return 0x12; /* Korean */
208 /* case LANG_Du: return 0x13; */ /* Dutch */
209 case LANG_No
: return 0x14; /* Norwegian */
210 case LANG_Pl
: return 0x15; /* Polish */
211 case LANG_Po
: return 0x16; /* Portuguese */
212 /* case LANG_Ro: return 0x18; */ /* Romanian */
213 /* case LANG_Ru: return 0x19; */ /* Russian */
214 /* case LANG_Cr: return 0x1a; */ /* Croatian */
215 /* case LANG_Sl: return 0x1b; */ /* Slovak */
216 case LANG_Sw
: return 0x1d; /* Swedish */
217 /* case LANG_Tu: return 0x1f; */ /* Turkish */
218 /* case LANG_Sv: return 0x24; */ /* Slovenian */
219 case LANG_Eo
: return 0x25; /* Esperanto (not official) */
220 case LANG_Ca
: return 0x26; /* Catalan */
223 return 0x00; /* Neutral language */
227 /***********************************************************************
228 * GetSystemDefaultLCID (OLE2NLS.2)
230 LCID WINAPI
GetSystemDefaultLCID()
232 return GetUserDefaultLCID();
235 /***********************************************************************
236 * GetUserDefaultLangID (OLE2NLS.3)
238 LANGID WINAPI
GetUserDefaultLangID()
240 return (WORD
)GetUserDefaultLCID();
243 /***********************************************************************
244 * GetSystemDefaultLangID (OLE2NLS.4)
246 LANGID WINAPI
GetSystemDefaultLangID()
248 return GetUserDefaultLangID();
251 /***********************************************************************
252 * GetLocaleInfoA (OLE2NLS.5)
253 * Is the last parameter really WORD for Win16?
255 INT16 WINAPI
GetLocaleInfo16(LCID lcid
,LCTYPE LCType
,LPSTR buf
,INT16 len
)
257 return GetLocaleInfo32A(lcid
,LCType
,buf
,len
);
260 INT32 WINAPI
GetLocaleInfo32A(LCID lcid
,LCTYPE LCType
,LPSTR buf
,INT32 len
)
265 TRACE(ole
,"(%8lX,%8lX,%p,%4X)\n",
266 lcid
,LCType
,buf
,len
);
268 LCType
&= ~(LOCALE_NOUSEROVERRIDE
|LOCALE_USE_CP_ACP
);
270 /* As an option, we could obtain the value from win.ini.
271 This would not match the Wine compile-time option.
272 Also, not all identifiers are available from win.ini */
274 /* If we are through all of this, retLen should not be zero anymore.
275 If it is, the value is not supported */
277 while (locale_name2id
[i
].name
!=NULL
) {
278 if (LCType
== locale_name2id
[i
].id
) {
279 retString
= locale_name2id
[i
].name
;
285 WARN(ole
,"Unkown LC type %lX\n",LCType
);
289 #define LOCVAL(type,value) case type:retString=value;break;
291 /* Now, the language specific definitions. They don't have to be
294 switch(Options
.language
)
298 /* This definitions apply to Germany only. Users in Austria
299 or Switzerland might want to modify them */
300 LOCVAL(LOCALE_ILANGUAGE
,"9")
301 LOCVAL(LOCALE_SLANGUAGE
,"Deutsch")
302 LOCVAL(LOCALE_SENGLANGUAGE
,"German")
303 LOCVAL(LOCALE_SABBREVLANGNAME
,"deu")
304 LOCVAL(LOCALE_SNATIVELANGNAME
,"Deutsch")
305 LOCVAL(LOCALE_ICOUNTRY
,"49")
306 LOCVAL(LOCALE_SCOUNTRY
,"Deutschland")
307 LOCVAL(LOCALE_SENGCOUNTRY
,"Deutschland")
308 LOCVAL(LOCALE_SABBREVCTRYNAME
,"De")
309 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Deutschland")
310 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"9")
311 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"49")
312 LOCVAL(LOCALE_IDEFAULTCODEPAGE
,"851")
314 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
316 LOCVAL(LOCALE_SLIST
,";")
317 LOCVAL(LOCALE_IMEASURE
,"0")
318 LOCVAL(LOCALE_SDECIMAL
,",")
319 LOCVAL(LOCALE_STHOUSAND
,".")
321 LOCVAL(LOCALE_SGROUPING)
323 LOCVAL(LOCALE_IDIGITS
,"2")
324 LOCVAL(LOCALE_ILZERO
,"1")
326 LOCVAL(LOCALE_INEGNUMBER)
327 Is this "0123456789" ??
328 LOCVAL(LOCALE_SNATIVEDIGITS)
330 LOCVAL(LOCALE_SCURRENCY
,"DM")
332 LOCVAL(LOCALE_SINTLSYMBOL)
333 LOCVAL(LOCALE_SMONDECIMALSEP)
334 LOCVAL(LOCALE_SMONTHOUSANDSEP)
335 LOCVAL(LOCALE_SMONGROUPING)
337 LOCVAL(LOCALE_ICURRDIGITS
,"2")
339 LOCVAL(LOCALE_IINTLCURRDIGITS)
341 LOCVAL(LOCALE_ICURRENCY
,"3")
342 LOCVAL(LOCALE_INEGCURR
,"8")
343 LOCVAL(LOCALE_SDATE
,".")
344 LOCVAL(LOCALE_STIME
,":")
345 LOCVAL(LOCALE_SSHORTDATE
,"dd.MM.yyyy")
346 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
348 LOCVAL(LOCALE_STIMEFORMAT)
350 LOCVAL(LOCALE_IDATE
,"1")
352 LOCVAL(LOCALE_ILDATE)
354 LOCVAL(LOCALE_ITIME
,"1")
356 LOCVAL(LOCALE_ITIMEMARKPOSN)
357 LOCVAL(LOCALE_ICENTURY)
359 LOCVAL(LOCALE_ITLZERO
,"1")
361 LOCVAL(LOCALE_IDAYLZERO)
362 LOCVAL(LOCALE_IMONLZERO)
365 LOCVAL(LOCALE_ICALENDARTYPE)
366 LOCVAL(LOCALE_IOPTIONALCALENDAR)
367 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
368 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
370 LOCVAL(LOCALE_SDAYNAME1
,"Montag")
371 LOCVAL(LOCALE_SDAYNAME2
,"Dienstag")
372 LOCVAL(LOCALE_SDAYNAME3
,"Mittwoch")
373 LOCVAL(LOCALE_SDAYNAME4
,"Donnerstag")
374 LOCVAL(LOCALE_SDAYNAME5
,"Freitag")
375 LOCVAL(LOCALE_SDAYNAME6
,"Sonnabend")
376 LOCVAL(LOCALE_SDAYNAME7
,"Sonntag")
377 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Mo")
378 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Di")
379 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Mi")
380 LOCVAL(LOCALE_SABBREVDAYNAME4
,"Do")
381 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Fr")
382 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Sa")
383 LOCVAL(LOCALE_SABBREVDAYNAME7
,"So")
384 LOCVAL(LOCALE_SMONTHNAME1
,"Januar")
385 LOCVAL(LOCALE_SMONTHNAME2
,"Februar")
386 LOCVAL(LOCALE_SMONTHNAME3
,"März")
387 LOCVAL(LOCALE_SMONTHNAME4
,"April")
388 LOCVAL(LOCALE_SMONTHNAME5
,"Mai")
389 LOCVAL(LOCALE_SMONTHNAME6
,"Juni")
390 LOCVAL(LOCALE_SMONTHNAME7
,"Juli")
391 LOCVAL(LOCALE_SMONTHNAME8
,"August")
392 LOCVAL(LOCALE_SMONTHNAME9
,"September")
393 LOCVAL(LOCALE_SMONTHNAME10
,"Oktober")
394 LOCVAL(LOCALE_SMONTHNAME11
,"November")
395 LOCVAL(LOCALE_SMONTHNAME12
,"Dezember")
396 LOCVAL(LOCALE_SMONTHNAME13
,"")
397 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Jan")
398 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
399 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mär")
400 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
401 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Mai")
402 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Jun")
403 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Jul")
404 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Aug")
405 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Sep")
406 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Okt")
407 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
408 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dez")
409 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
411 LOCVAL(LOCALE_SPOSITIVESIGN)
412 LOCVAL(LOCALE_SNEGATIVESIGN)
413 LOCVAL(LOCALE_IPOSSIGNPOSN)
414 LOCVAL(LOCALE_INEGSIGNPOSN)
415 LOCVAL(LOCALE_IPOSSYMPRECEDES)
416 LOCVAL(LOCALE_IPOSSEPBYSPACE)
417 LOCVAL(LOCALE_INEGSYMPRECEDES)
418 LOCVAL(LOCALE_INEGSEPBYSPACE)
420 default: found
=0;break;
422 break; /* LANG(De) */
426 LOCVAL(LOCALE_ILANGUAGE
,"6")
427 LOCVAL(LOCALE_SLANGUAGE
,"Dansk")
428 LOCVAL(LOCALE_SENGLANGUAGE
,"Danish")
429 LOCVAL(LOCALE_SABBREVLANGNAME
,"dan")
430 LOCVAL(LOCALE_SNATIVELANGNAME
,"Dansk")
431 LOCVAL(LOCALE_ICOUNTRY
,"45")
432 LOCVAL(LOCALE_SCOUNTRY
,"Danmark")
433 LOCVAL(LOCALE_SENGCOUNTRY
,"Denmark")
434 LOCVAL(LOCALE_SABBREVCTRYNAME
,"DK")
435 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Danmark")
436 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"6")
437 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"45")
438 /* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
439 /* LOCVAL(LOCALE_IDEFAULTANSICODEPAGE) */
440 LOCVAL(LOCALE_SLIST
,";")
441 LOCVAL(LOCALE_IMEASURE
,"0")
442 LOCVAL(LOCALE_SDECIMAL
,",")
443 LOCVAL(LOCALE_STHOUSAND
,".")
444 /* LOCVAL(LOCALE_SGROUPING) */
445 LOCVAL(LOCALE_IDIGITS
,"2")
446 LOCVAL(LOCALE_ILZERO
,"1")
447 /* LOCVAL(LOCALE_INEGNUMBER) */
448 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
449 LOCVAL(LOCALE_SCURRENCY
,"kr")
450 /* LOCVAL(LOCALE_SINTLSYMBOL) */
451 LOCVAL(LOCALE_SMONDECIMALSEP
,",")
452 LOCVAL(LOCALE_SMONTHOUSANDSEP
,".")
453 /* LOCVAL(LOCALE_SMONGROUPING) */
454 LOCVAL(LOCALE_ICURRDIGITS
,"2")
455 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
456 LOCVAL(LOCALE_ICURRENCY
,"3")
457 LOCVAL(LOCALE_INEGCURR
,"8")
458 LOCVAL(LOCALE_SDATE
,".")
459 LOCVAL(LOCALE_STIME
,":")
460 LOCVAL(LOCALE_SSHORTDATE
,"dd/MM-yyyy")
461 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
462 /* LOCVAL(LOCALE_STIMEFORMAT) */
463 LOCVAL(LOCALE_IDATE
,"1")
464 /* LOCVAL(LOCALE_ILDATE) */
465 LOCVAL(LOCALE_ITIME
,"1")
466 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
467 /* LOCVAL(LOCALE_ICENTURY) */
468 LOCVAL(LOCALE_ITLZERO
,"1")
469 /* LOCVAL(LOCALE_IDAYLZERO) */
470 /* LOCVAL(LOCALE_IMONLZERO) */
471 LOCVAL(LOCALE_S1159
, "")
472 LOCVAL(LOCALE_S2359
, "")
473 /* LOCVAL(LOCALE_ICALENDARTYPE) */
474 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
475 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
476 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
477 LOCVAL(LOCALE_SDAYNAME1
,"Mandag")
478 LOCVAL(LOCALE_SDAYNAME2
,"Tirsdag")
479 LOCVAL(LOCALE_SDAYNAME3
,"Onsdag")
480 LOCVAL(LOCALE_SDAYNAME4
,"Torsdag")
481 LOCVAL(LOCALE_SDAYNAME5
,"Fredag")
482 LOCVAL(LOCALE_SDAYNAME6
,"Lørdag")
483 LOCVAL(LOCALE_SDAYNAME7
,"Søndag")
484 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Ma")
485 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ti")
486 LOCVAL(LOCALE_SABBREVDAYNAME3
,"On")
487 LOCVAL(LOCALE_SABBREVDAYNAME4
,"To")
488 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Fr")
489 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Lø")
490 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Sø")
491 LOCVAL(LOCALE_SMONTHNAME1
,"Januar")
492 LOCVAL(LOCALE_SMONTHNAME2
,"Februar")
493 LOCVAL(LOCALE_SMONTHNAME3
,"Marts")
494 LOCVAL(LOCALE_SMONTHNAME4
,"April")
495 LOCVAL(LOCALE_SMONTHNAME5
,"Maj")
496 LOCVAL(LOCALE_SMONTHNAME6
,"Juni")
497 LOCVAL(LOCALE_SMONTHNAME7
,"Juli")
498 LOCVAL(LOCALE_SMONTHNAME8
,"August")
499 LOCVAL(LOCALE_SMONTHNAME9
,"September")
500 LOCVAL(LOCALE_SMONTHNAME10
,"Oktober")
501 LOCVAL(LOCALE_SMONTHNAME11
,"November")
502 LOCVAL(LOCALE_SMONTHNAME12
,"December")
503 LOCVAL(LOCALE_SMONTHNAME13
,"")
504 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Jan")
505 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
506 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mar")
507 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
508 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Maj")
509 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Jun")
510 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Jul")
511 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Aug")
512 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Sep")
513 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Okt")
514 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
515 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dec")
516 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
517 LOCVAL(LOCALE_SPOSITIVESIGN
, "")
518 LOCVAL(LOCALE_SNEGATIVESIGN
, "-")
519 LOCVAL(LOCALE_IPOSSIGNPOSN
, "3")
520 LOCVAL(LOCALE_INEGSIGNPOSN
, "3")
521 LOCVAL(LOCALE_IPOSSYMPRECEDES
, "1")
522 LOCVAL(LOCALE_IPOSSEPBYSPACE
, "0")
523 LOCVAL(LOCALE_INEGSYMPRECEDES
, "1")
524 LOCVAL(LOCALE_INEGSEPBYSPACE
, "0")
525 default: found
=0;break;
527 break; /* LANG(Da) */
531 LOCVAL(LOCALE_ILANGUAGE
, "0409")
532 LOCVAL(LOCALE_SLANGUAGE
, "English (United States)")
533 LOCVAL(LOCALE_SENGLANGUAGE
, "English")
534 LOCVAL(LOCALE_SABBREVLANGNAME
, "ENU")
535 LOCVAL(LOCALE_SNATIVELANGNAME
, "English")
536 LOCVAL(LOCALE_ICOUNTRY
, "1")
537 LOCVAL(LOCALE_SCOUNTRY
, "United States")
538 LOCVAL(LOCALE_SENGCOUNTRY
, "United States")
539 LOCVAL(LOCALE_SABBREVCTRYNAME
, "USA")
540 LOCVAL(LOCALE_SNATIVECTRYNAME
, "United States")
541 LOCVAL(LOCALE_IDEFAULTLANGUAGE
, "0409")
542 LOCVAL(LOCALE_IDEFAULTCOUNTRY
, "1")
543 LOCVAL(LOCALE_IDEFAULTCODEPAGE
, "437")
544 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
, "1252")
545 LOCVAL(LOCALE_SLIST
, ",")
546 LOCVAL(LOCALE_IMEASURE
, "1")
547 LOCVAL(LOCALE_SDECIMAL
, ".")
548 LOCVAL(LOCALE_STHOUSAND
, ",")
549 LOCVAL(LOCALE_SGROUPING
, "3;0")
550 LOCVAL(LOCALE_IDIGITS
, "2")
551 LOCVAL(LOCALE_ILZERO
, "1")
552 LOCVAL(LOCALE_INEGNUMBER
, "1")
553 LOCVAL(LOCALE_SNATIVEDIGITS
, "0123456789")
554 LOCVAL(LOCALE_SCURRENCY
, "$")
555 LOCVAL(LOCALE_SINTLSYMBOL
, "USD")
556 LOCVAL(LOCALE_SMONDECIMALSEP
, ".")
557 LOCVAL(LOCALE_SMONTHOUSANDSEP
, ",")
558 LOCVAL(LOCALE_SMONGROUPING
, "3;0")
559 LOCVAL(LOCALE_ICURRDIGITS
, "2")
560 LOCVAL(LOCALE_IINTLCURRDIGITS
, "2")
561 LOCVAL(LOCALE_ICURRENCY
, "0")
562 LOCVAL(LOCALE_INEGCURR
, "0")
563 LOCVAL(LOCALE_SDATE
, "/")
564 LOCVAL(LOCALE_STIME
, ":")
565 LOCVAL(LOCALE_SSHORTDATE
, "M/d/yy")
566 LOCVAL(LOCALE_SLONGDATE
, "dddd, MMMM dd, yyyy")
567 LOCVAL(LOCALE_STIMEFORMAT
, "h:mm:ss tt")
568 LOCVAL(LOCALE_IDATE
, "0")
569 LOCVAL(LOCALE_ILDATE
, "0")
570 LOCVAL(LOCALE_ITIME
, "0")
571 LOCVAL(LOCALE_ITIMEMARKPOSN
, "0")
572 LOCVAL(LOCALE_ICENTURY
, "0")
573 LOCVAL(LOCALE_ITLZERO
, "0")
574 LOCVAL(LOCALE_IDAYLZERO
, "0")
575 LOCVAL(LOCALE_IMONLZERO
, "0")
576 LOCVAL(LOCALE_S1159
, "AM")
577 LOCVAL(LOCALE_S2359
, "PM")
578 LOCVAL(LOCALE_ICALENDARTYPE
, "1")
579 LOCVAL(LOCALE_IOPTIONALCALENDAR
, "0")
580 LOCVAL(LOCALE_IFIRSTDAYOFWEEK
, "6")
581 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR
, "0")
582 LOCVAL(LOCALE_SDAYNAME1
, "Monday")
583 LOCVAL(LOCALE_SDAYNAME2
, "Tuesday")
584 LOCVAL(LOCALE_SDAYNAME3
, "Wednesday")
585 LOCVAL(LOCALE_SDAYNAME4
, "Thursday")
586 LOCVAL(LOCALE_SDAYNAME5
, "Friday")
587 LOCVAL(LOCALE_SDAYNAME6
, "Saturday")
588 LOCVAL(LOCALE_SDAYNAME7
, "Sunday")
589 LOCVAL(LOCALE_SABBREVDAYNAME1
, "Mon")
590 LOCVAL(LOCALE_SABBREVDAYNAME2
, "Tue")
591 LOCVAL(LOCALE_SABBREVDAYNAME3
, "Wed")
592 LOCVAL(LOCALE_SABBREVDAYNAME4
, "Thu")
593 LOCVAL(LOCALE_SABBREVDAYNAME5
, "Fri")
594 LOCVAL(LOCALE_SABBREVDAYNAME6
, "Sat")
595 LOCVAL(LOCALE_SABBREVDAYNAME7
, "Sun")
596 LOCVAL(LOCALE_SMONTHNAME1
, "January")
597 LOCVAL(LOCALE_SMONTHNAME2
, "February")
598 LOCVAL(LOCALE_SMONTHNAME3
, "March")
599 LOCVAL(LOCALE_SMONTHNAME4
, "April")
600 LOCVAL(LOCALE_SMONTHNAME5
, "May")
601 LOCVAL(LOCALE_SMONTHNAME6
, "June")
602 LOCVAL(LOCALE_SMONTHNAME7
, "July")
603 LOCVAL(LOCALE_SMONTHNAME8
, "August")
604 LOCVAL(LOCALE_SMONTHNAME9
, "September")
605 LOCVAL(LOCALE_SMONTHNAME10
, "October")
606 LOCVAL(LOCALE_SMONTHNAME11
, "November")
607 LOCVAL(LOCALE_SMONTHNAME12
, "December")
608 LOCVAL(LOCALE_SMONTHNAME13
, "")
609 LOCVAL(LOCALE_SABBREVMONTHNAME1
, "Jan")
610 LOCVAL(LOCALE_SABBREVMONTHNAME2
, "Feb")
611 LOCVAL(LOCALE_SABBREVMONTHNAME3
, "Mar")
612 LOCVAL(LOCALE_SABBREVMONTHNAME4
, "Apr")
613 LOCVAL(LOCALE_SABBREVMONTHNAME5
, "May")
614 LOCVAL(LOCALE_SABBREVMONTHNAME6
, "Jun")
615 LOCVAL(LOCALE_SABBREVMONTHNAME7
, "Jul")
616 LOCVAL(LOCALE_SABBREVMONTHNAME8
, "Aug")
617 LOCVAL(LOCALE_SABBREVMONTHNAME9
, "Sep")
618 LOCVAL(LOCALE_SABBREVMONTHNAME10
, "Oct")
619 LOCVAL(LOCALE_SABBREVMONTHNAME11
, "Nov")
620 LOCVAL(LOCALE_SABBREVMONTHNAME12
, "Dec")
621 LOCVAL(LOCALE_SABBREVMONTHNAME13
, "")
622 LOCVAL(LOCALE_SPOSITIVESIGN
, "")
623 LOCVAL(LOCALE_SNEGATIVESIGN
, "-")
624 LOCVAL(LOCALE_IPOSSIGNPOSN
, "3")
625 LOCVAL(LOCALE_INEGSIGNPOSN
, "0")
626 LOCVAL(LOCALE_IPOSSYMPRECEDES
, "1")
627 LOCVAL(LOCALE_IPOSSEPBYSPACE
, "0")
628 LOCVAL(LOCALE_INEGSYMPRECEDES
, "1")
629 LOCVAL(LOCALE_INEGSEPBYSPACE
, "0")
630 default: found
=0;break;
632 break; /* LANG(En) */
636 /* LOCVAL(LOCALE_ILANGUAGE,"9") ISO numerical ID for language TODO */
637 LOCVAL(LOCALE_SLANGUAGE
,"Esperanto")
638 LOCVAL(LOCALE_SENGLANGUAGE
,"Esperanto")
639 /* LOCVAL(LOCALE_SABBREVLANGNAME,"deu") */
640 LOCVAL(LOCALE_SNATIVELANGNAME
,"Esperanto")
641 /* LOCVAL(LOCALE_ICOUNTRY,"49") not official in any one country */
642 /* LOCVAL(LOCALE_SCOUNTRY,"Deutschland") */
643 /* LOCVAL(LOCALE_SENGCOUNTRY,"Germany") */
644 /* LOCVAL(LOCALE_SABBREVCTRYNAME,"De") */
645 /* LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland") */
646 /* LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9") ISO ID of lang TODO */
647 /* LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49") */
648 LOCVAL(LOCALE_IDEFAULTCODEPAGE
,"3") /* is this right? TODO */
649 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
,"3") /* is this right? TODO */
650 LOCVAL(LOCALE_SLIST
,";")
651 LOCVAL(LOCALE_IMEASURE
,"0")
652 LOCVAL(LOCALE_SDECIMAL
,",")
653 LOCVAL(LOCALE_STHOUSAND
,".")
654 /* LOCVAL(LOCALE_SGROUPING) */
655 LOCVAL(LOCALE_IDIGITS
,"2")
656 LOCVAL(LOCALE_ILZERO
,"1")
657 /* LOCVAL(LOCALE_INEGNUMBER) */
658 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
659 LOCVAL(LOCALE_SCURRENCY
,"NLG") /* accounting currency of UEA */
660 /* LOCVAL(LOCALE_SINTLSYMBOL) */
661 /* LOCVAL(LOCALE_SMONDECIMALSEP) */
662 /* LOCVAL(LOCALE_SMONTHOUSANDSEP) */
663 /* LOCVAL(LOCALE_SMONGROUPING) */
664 /* LOCVAL(LOCALE_ICURRDIGITS,"2") */
665 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
666 LOCVAL(LOCALE_ICURRENCY
,"3")
667 LOCVAL(LOCALE_INEGCURR
,"8")
668 LOCVAL(LOCALE_SDATE
,".")
669 LOCVAL(LOCALE_STIME
,":")
670 LOCVAL(LOCALE_SSHORTDATE
,"yyyy.mm.dd")
671 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
672 /* LOCVAL(LOCALE_STIMEFORMAT) */
673 LOCVAL(LOCALE_IDATE
,"1")
674 /* LOCVAL(LOCALE_ILDATE) */
675 LOCVAL(LOCALE_ITIME
,"1")
676 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
677 /* LOCVAL(LOCALE_ICENTURY) */
678 LOCVAL(LOCALE_ITLZERO
,"1")
679 /* LOCVAL(LOCALE_IDAYLZERO) */
680 /* LOCVAL(LOCALE_IMONLZERO) */
681 /* LOCVAL(LOCALE_S1159) */
682 /* LOCVAL(LOCALE_S2359) */
683 /* LOCVAL(LOCALE_ICALENDARTYPE) */
684 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
685 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
686 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
687 LOCVAL(LOCALE_SDAYNAME1
,"lundo")
688 LOCVAL(LOCALE_SDAYNAME2
,"mardo")
689 LOCVAL(LOCALE_SDAYNAME3
,"merkredo")
690 LOCVAL(LOCALE_SDAYNAME4
,"¼aýdo")
691 LOCVAL(LOCALE_SDAYNAME5
,"vendredo")
692 LOCVAL(LOCALE_SDAYNAME6
,"sabato")
693 LOCVAL(LOCALE_SDAYNAME7
,"dimanæo")
694 LOCVAL(LOCALE_SABBREVDAYNAME1
,"lu")
695 LOCVAL(LOCALE_SABBREVDAYNAME2
,"ma")
696 LOCVAL(LOCALE_SABBREVDAYNAME3
,"me")
697 LOCVAL(LOCALE_SABBREVDAYNAME4
,"¼a")
698 LOCVAL(LOCALE_SABBREVDAYNAME5
,"ve")
699 LOCVAL(LOCALE_SABBREVDAYNAME6
,"sa")
700 LOCVAL(LOCALE_SABBREVDAYNAME7
,"di")
701 LOCVAL(LOCALE_SMONTHNAME1
,"januaro")
702 LOCVAL(LOCALE_SMONTHNAME2
,"februaro")
703 LOCVAL(LOCALE_SMONTHNAME3
,"marto")
704 LOCVAL(LOCALE_SMONTHNAME4
,"aprilo")
705 LOCVAL(LOCALE_SMONTHNAME5
,"majo")
706 LOCVAL(LOCALE_SMONTHNAME6
,"junio")
707 LOCVAL(LOCALE_SMONTHNAME7
,"julio")
708 LOCVAL(LOCALE_SMONTHNAME8
,"aýgusto")
709 LOCVAL(LOCALE_SMONTHNAME9
,"septembro")
710 LOCVAL(LOCALE_SMONTHNAME10
,"oktobro")
711 LOCVAL(LOCALE_SMONTHNAME11
,"novembro")
712 LOCVAL(LOCALE_SMONTHNAME12
,"decembro")
713 LOCVAL(LOCALE_SMONTHNAME13
,"")
714 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"jan")
715 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"feb")
716 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"mar")
717 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"apr")
718 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"maj")
719 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"jun")
720 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"jul")
721 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"aýg")
722 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"sep")
723 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"okt")
724 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"nov")
725 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"dec")
726 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
727 /* LOCVAL(LOCALE_SPOSITIVESIGN) */
728 /* LOCVAL(LOCALE_SNEGATIVESIGN) */
729 /* LOCVAL(LOCALE_IPOSSIGNPOSN) */
730 /* LOCVAL(LOCALE_INEGSIGNPOSN) */
731 /* LOCVAL(LOCALE_IPOSSYMPRECEDES) */
732 /* LOCVAL(LOCALE_IPOSSEPBYSPACE) */
733 /* LOCVAL(LOCALE_INEGSYMPRECEDES) */
734 /* LOCVAL(LOCALE_INEGSEPBYSPACE) */
735 default: found
=0;break;
737 break; /* LANG(Eo) */
741 LOCVAL(LOCALE_ILANGUAGE
,"11")
742 LOCVAL(LOCALE_SLANGUAGE
,"Suomi")
743 LOCVAL(LOCALE_SENGLANGUAGE
,"Finnish")
744 LOCVAL(LOCALE_SABBREVLANGNAME
,"fin")
745 LOCVAL(LOCALE_SNATIVELANGNAME
,"suomi")
746 LOCVAL(LOCALE_ICOUNTRY
,"49")
747 LOCVAL(LOCALE_SCOUNTRY
,"Suomi")
748 LOCVAL(LOCALE_SENGCOUNTRY
,"Finland")
749 LOCVAL(LOCALE_SABBREVCTRYNAME
,"Fin")
750 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Suomi")
751 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"11")
752 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"358")
754 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
755 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
757 LOCVAL(LOCALE_SLIST
,";")
758 LOCVAL(LOCALE_IMEASURE
,"0")
759 LOCVAL(LOCALE_SDECIMAL
,",")
760 LOCVAL(LOCALE_STHOUSAND
,".")
762 LOCVAL(LOCALE_SGROUPING)
764 LOCVAL(LOCALE_IDIGITS
,"2")
765 LOCVAL(LOCALE_ILZERO
,"1")
767 LOCVAL(LOCALE_INEGNUMBER)
768 Is this "0123456789" ??
769 LOCVAL(LOCALE_SNATIVEDIGITS)
771 LOCVAL(LOCALE_SCURRENCY
,"mk")
773 LOCVAL(LOCALE_SINTLSYMBOL)
774 LOCVAL(LOCALE_SMONDECIMALSEP)
775 LOCVAL(LOCALE_SMONTHOUSANDSEP)
776 LOCVAL(LOCALE_SMONGROUPING)
778 LOCVAL(LOCALE_ICURRDIGITS
,"2")
780 LOCVAL(LOCALE_IINTLCURRDIGITS)
782 LOCVAL(LOCALE_ICURRENCY
,"3")
783 LOCVAL(LOCALE_INEGCURR
,"8")
784 LOCVAL(LOCALE_SDATE
,".")
785 LOCVAL(LOCALE_STIME
,":")
786 LOCVAL(LOCALE_SSHORTDATE
,"dd.MM.yyyy")
787 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
789 LOCVAL(LOCALE_STIMEFORMAT)
791 LOCVAL(LOCALE_IDATE
,"1")
793 LOCVAL(LOCALE_ILDATE)
795 LOCVAL(LOCALE_ITIME
,"1")
797 LOCVAL(LOCALE_ITIMEMARKPOSN)
798 LOCVAL(LOCALE_ICENTURY)
800 LOCVAL(LOCALE_ITLZERO
,"1")
802 LOCVAL(LOCALE_IDAYLZERO)
803 LOCVAL(LOCALE_IMONLZERO)
805 LOCVAL(LOCALE_S1159
, "AM")
806 LOCVAL(LOCALE_S2359
, "PM")
808 LOCVAL(LOCALE_ICALENDARTYPE)
809 LOCVAL(LOCALE_IOPTIONALCALENDAR)
810 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
811 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
813 LOCVAL(LOCALE_SDAYNAME1
,"maanantai")
814 LOCVAL(LOCALE_SDAYNAME2
,"tiistai")
815 LOCVAL(LOCALE_SDAYNAME3
,"keskiviikko")
816 LOCVAL(LOCALE_SDAYNAME4
,"torstai")
817 LOCVAL(LOCALE_SDAYNAME5
,"perjantai")
818 LOCVAL(LOCALE_SDAYNAME6
,"lauantai")
819 LOCVAL(LOCALE_SDAYNAME7
,"sunnuntai")
820 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Ma")
821 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ti")
822 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Ke")
823 LOCVAL(LOCALE_SABBREVDAYNAME4
,"To")
824 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Pe")
825 LOCVAL(LOCALE_SABBREVDAYNAME6
,"La")
826 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Su")
827 LOCVAL(LOCALE_SMONTHNAME1
,"tammikuu")
828 LOCVAL(LOCALE_SMONTHNAME2
,"helmikuu")
829 LOCVAL(LOCALE_SMONTHNAME3
,"maaliskuu")
830 LOCVAL(LOCALE_SMONTHNAME4
,"huhtikuu")
831 LOCVAL(LOCALE_SMONTHNAME5
,"toukokuu")
832 LOCVAL(LOCALE_SMONTHNAME6
,"kesäkuu")
833 LOCVAL(LOCALE_SMONTHNAME7
,"heinäkuu")
834 LOCVAL(LOCALE_SMONTHNAME8
,"elokuu")
835 LOCVAL(LOCALE_SMONTHNAME9
,"syyskuu")
836 LOCVAL(LOCALE_SMONTHNAME10
,"lokakuu")
837 LOCVAL(LOCALE_SMONTHNAME11
,"marraskuu")
838 LOCVAL(LOCALE_SMONTHNAME12
,"joulukuu")
839 LOCVAL(LOCALE_SMONTHNAME13
,"")
840 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"tammi")
841 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"helmi")
842 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"maalis")
843 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"huhti")
844 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"touko")
845 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"kesä")
846 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"heinä")
847 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"elo")
848 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"syys")
849 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"loka")
850 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"marras")
851 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"joulu")
852 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
853 LOCVAL(LOCALE_SPOSITIVESIGN
, "")
854 LOCVAL(LOCALE_SNEGATIVESIGN
, "-")
856 LOCVAL(LOCALE_IPOSSIGNPOSN)
857 LOCVAL(LOCALE_INEGSIGNPOSN)
858 LOCVAL(LOCALE_IPOSSYMPRECEDES)
859 LOCVAL(LOCALE_IPOSSEPBYSPACE)
860 LOCVAL(LOCALE_INEGSYMPRECEDES)
861 LOCVAL(LOCALE_INEGSEPBYSPACE)
863 default: found
=0;break;
865 break; /* LANG(Fi) */
869 LOCVAL(LOCALE_ILANGUAGE
,"9")
870 LOCVAL(LOCALE_SLANGUAGE
,"Italiano")
871 LOCVAL(LOCALE_SENGLANGUAGE
,"Italian")
872 LOCVAL(LOCALE_SABBREVLANGNAME
,"ita")
873 LOCVAL(LOCALE_SNATIVELANGNAME
,"Italiano")
874 LOCVAL(LOCALE_ICOUNTRY
,"39")
875 LOCVAL(LOCALE_SCOUNTRY
,"Italia")
876 LOCVAL(LOCALE_SENGCOUNTRY
,"Italy")
877 LOCVAL(LOCALE_SABBREVCTRYNAME
,"It")
878 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Italia")
879 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"9")
880 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"39")
882 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
883 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
885 LOCVAL(LOCALE_SLIST
,";")
886 LOCVAL(LOCALE_IMEASURE
,"0")
887 LOCVAL(LOCALE_SDECIMAL
,",")
888 LOCVAL(LOCALE_STHOUSAND
,".")
890 LOCVAL(LOCALE_SGROUPING)
892 LOCVAL(LOCALE_IDIGITS
,"2")
893 LOCVAL(LOCALE_ILZERO
,"1")
895 LOCVAL(LOCALE_INEGNUMBER)
896 Is this "0123456789" ??
897 LOCVAL(LOCALE_SNATIVEDIGITS)
899 LOCVAL(LOCALE_SCURRENCY
,"Lit.")
901 LOCVAL(LOCALE_SINTLSYMBOL)
902 LOCVAL(LOCALE_SMONDECIMALSEP)
903 LOCVAL(LOCALE_SMONTHOUSANDSEP)
904 LOCVAL(LOCALE_SMONGROUPING)
906 LOCVAL(LOCALE_ICURRDIGITS
,"2")
908 LOCVAL(LOCALE_IINTLCURRDIGITS)
910 LOCVAL(LOCALE_ICURRENCY
,"3")
911 LOCVAL(LOCALE_INEGCURR
,"8")
912 LOCVAL(LOCALE_SDATE
,".")
913 LOCVAL(LOCALE_STIME
,":")
914 LOCVAL(LOCALE_SSHORTDATE
,"dd.MM.yyyy")
915 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
917 LOCVAL(LOCALE_STIMEFORMAT)
919 LOCVAL(LOCALE_IDATE
,"1")
921 LOCVAL(LOCALE_ILDATE)
923 LOCVAL(LOCALE_ITIME
,"1")
925 LOCVAL(LOCALE_ITIMEMARKPOSN)
926 LOCVAL(LOCALE_ICENTURY)
928 LOCVAL(LOCALE_ITLZERO
,"1")
930 LOCVAL(LOCALE_IDAYLZERO)
931 LOCVAL(LOCALE_IMONLZERO)
934 LOCVAL(LOCALE_ICALENDARTYPE)
935 LOCVAL(LOCALE_IOPTIONALCALENDAR)
936 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
937 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
939 LOCVAL(LOCALE_SDAYNAME1
,"Lunedi'")
940 LOCVAL(LOCALE_SDAYNAME2
,"Martedi'")
941 LOCVAL(LOCALE_SDAYNAME3
,"Mercoledi'")
942 LOCVAL(LOCALE_SDAYNAME4
,"Giovedi'")
943 LOCVAL(LOCALE_SDAYNAME5
,"Venerdi'")
944 LOCVAL(LOCALE_SDAYNAME6
,"Sabato")
945 LOCVAL(LOCALE_SDAYNAME7
,"Domenica")
946 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Lu")
947 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ma")
948 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Me")
949 LOCVAL(LOCALE_SABBREVDAYNAME4
,"Gi")
950 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Ve")
951 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Sa")
952 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Do")
953 LOCVAL(LOCALE_SMONTHNAME1
,"Gennaio")
954 LOCVAL(LOCALE_SMONTHNAME2
,"Febbraio")
955 LOCVAL(LOCALE_SMONTHNAME3
,"Marzo")
956 LOCVAL(LOCALE_SMONTHNAME4
,"Aprile")
957 LOCVAL(LOCALE_SMONTHNAME5
,"Maggio")
958 LOCVAL(LOCALE_SMONTHNAME6
,"Giugno")
959 LOCVAL(LOCALE_SMONTHNAME7
,"Luglio")
960 LOCVAL(LOCALE_SMONTHNAME8
,"Agosto")
961 LOCVAL(LOCALE_SMONTHNAME9
,"Settembre")
962 LOCVAL(LOCALE_SMONTHNAME10
,"Ottobre")
963 LOCVAL(LOCALE_SMONTHNAME11
,"Novembre")
964 LOCVAL(LOCALE_SMONTHNAME12
,"Dicembre")
965 LOCVAL(LOCALE_SMONTHNAME13
,"")
966 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Gen")
967 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
968 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mar")
969 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
970 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Mag")
971 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Giu")
972 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Lug")
973 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Ago")
974 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Set")
975 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Ott")
976 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
977 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dic")
978 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
980 LOCVAL(LOCALE_SPOSITIVESIGN)
981 LOCVAL(LOCALE_SNEGATIVESIGN)
982 LOCVAL(LOCALE_IPOSSIGNPOSN)
983 LOCVAL(LOCALE_INEGSIGNPOSN)
984 LOCVAL(LOCALE_IPOSSYMPRECEDES)
985 LOCVAL(LOCALE_IPOSSEPBYSPACE)
986 LOCVAL(LOCALE_INEGSYMPRECEDES)
987 LOCVAL(LOCALE_INEGSEPBYSPACE)
989 default: found
=0;break;
991 break; /* LANG(It) */
995 LOCVAL(LOCALE_ILANGUAGE
, "0809")
996 LOCVAL(LOCALE_SLANGUAGE
, "English (United Kingdom)")
997 LOCVAL(LOCALE_SENGLANGUAGE
, "English")
998 LOCVAL(LOCALE_SABBREVLANGNAME
, "ENG")
999 LOCVAL(LOCALE_SNATIVELANGNAME
, "English")
1000 LOCVAL(LOCALE_ICOUNTRY
, "44")
1001 LOCVAL(LOCALE_SCOUNTRY
, "United Kingdom")
1002 LOCVAL(LOCALE_SENGCOUNTRY
, "United Kingdom")
1003 LOCVAL(LOCALE_SABBREVCTRYNAME
, "GBR")
1004 LOCVAL(LOCALE_SNATIVECTRYNAME
, "United Kingdom")
1005 LOCVAL(LOCALE_IDEFAULTLANGUAGE
, "0809")
1006 LOCVAL(LOCALE_IDEFAULTCOUNTRY
, "44")
1007 LOCVAL(LOCALE_IDEFAULTCODEPAGE
, "850")
1008 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
, "1252")
1009 LOCVAL(LOCALE_SLIST
, ",")
1010 LOCVAL(LOCALE_IMEASURE
, "0")
1011 LOCVAL(LOCALE_SDECIMAL
, ".")
1012 LOCVAL(LOCALE_STHOUSAND
, ",")
1013 LOCVAL(LOCALE_SGROUPING
, "3;0")
1014 LOCVAL(LOCALE_IDIGITS
, "2")
1015 LOCVAL(LOCALE_ILZERO
, "1")
1016 LOCVAL(LOCALE_INEGNUMBER
, "1")
1017 LOCVAL(LOCALE_SNATIVEDIGITS
, "0123456789")
1018 LOCVAL(LOCALE_SCURRENCY
, "£")
1019 LOCVAL(LOCALE_SINTLSYMBOL
, "GBP")
1020 LOCVAL(LOCALE_SMONDECIMALSEP
, ".")
1021 LOCVAL(LOCALE_SMONTHOUSANDSEP
, ",")
1022 LOCVAL(LOCALE_SMONGROUPING
, "3;0")
1023 LOCVAL(LOCALE_ICURRDIGITS
, "2")
1024 LOCVAL(LOCALE_IINTLCURRDIGITS
, "2")
1025 LOCVAL(LOCALE_ICURRENCY
, "0")
1026 LOCVAL(LOCALE_INEGCURR
, "1")
1027 LOCVAL(LOCALE_SDATE
, "/")
1028 LOCVAL(LOCALE_STIME
, ":")
1029 LOCVAL(LOCALE_SSHORTDATE
, "dd/MM/yy")
1030 LOCVAL(LOCALE_SLONGDATE
, "dd MMMM yyyy")
1031 LOCVAL(LOCALE_STIMEFORMAT
, "HH:mm:ss")
1032 LOCVAL(LOCALE_IDATE
, "1")
1033 LOCVAL(LOCALE_ILDATE
, "1")
1034 LOCVAL(LOCALE_ITIME
, "1")
1035 LOCVAL(LOCALE_ITIMEMARKPOSN
, "0")
1036 LOCVAL(LOCALE_ICENTURY
, "0")
1037 LOCVAL(LOCALE_ITLZERO
, "1")
1038 LOCVAL(LOCALE_IDAYLZERO
, "1")
1039 LOCVAL(LOCALE_IMONLZERO
, "1")
1040 LOCVAL(LOCALE_S1159
, "AM")
1041 LOCVAL(LOCALE_S2359
, "PM")
1042 LOCVAL(LOCALE_ICALENDARTYPE
, "1")
1043 LOCVAL(LOCALE_IOPTIONALCALENDAR
, "0")
1044 LOCVAL(LOCALE_IFIRSTDAYOFWEEK
, "0")
1045 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR
, "0")
1046 LOCVAL(LOCALE_SDAYNAME1
, "Monday")
1047 LOCVAL(LOCALE_SDAYNAME2
, "Tuesday")
1048 LOCVAL(LOCALE_SDAYNAME3
, "Wednesday")
1049 LOCVAL(LOCALE_SDAYNAME4
, "Thursday")
1050 LOCVAL(LOCALE_SDAYNAME5
, "Friday")
1051 LOCVAL(LOCALE_SDAYNAME6
, "Saturday")
1052 LOCVAL(LOCALE_SDAYNAME7
, "Sunday")
1053 LOCVAL(LOCALE_SABBREVDAYNAME1
, "Mon")
1054 LOCVAL(LOCALE_SABBREVDAYNAME2
, "Tue")
1055 LOCVAL(LOCALE_SABBREVDAYNAME3
, "Wed")
1056 LOCVAL(LOCALE_SABBREVDAYNAME4
, "Thu")
1057 LOCVAL(LOCALE_SABBREVDAYNAME5
, "Fri")
1058 LOCVAL(LOCALE_SABBREVDAYNAME6
, "Sat")
1059 LOCVAL(LOCALE_SABBREVDAYNAME7
, "Sun")
1060 LOCVAL(LOCALE_SMONTHNAME1
, "January")
1061 LOCVAL(LOCALE_SMONTHNAME2
, "February")
1062 LOCVAL(LOCALE_SMONTHNAME3
, "March")
1063 LOCVAL(LOCALE_SMONTHNAME4
, "April")
1064 LOCVAL(LOCALE_SMONTHNAME5
, "May")
1065 LOCVAL(LOCALE_SMONTHNAME6
, "June")
1066 LOCVAL(LOCALE_SMONTHNAME7
, "July")
1067 LOCVAL(LOCALE_SMONTHNAME8
, "August")
1068 LOCVAL(LOCALE_SMONTHNAME9
, "September")
1069 LOCVAL(LOCALE_SMONTHNAME10
, "October")
1070 LOCVAL(LOCALE_SMONTHNAME11
, "November")
1071 LOCVAL(LOCALE_SMONTHNAME12
, "December")
1072 LOCVAL(LOCALE_SMONTHNAME13
, "")
1073 LOCVAL(LOCALE_SABBREVMONTHNAME1
, "Jan")
1074 LOCVAL(LOCALE_SABBREVMONTHNAME2
, "Feb")
1075 LOCVAL(LOCALE_SABBREVMONTHNAME3
, "Mar")
1076 LOCVAL(LOCALE_SABBREVMONTHNAME4
, "Apr")
1077 LOCVAL(LOCALE_SABBREVMONTHNAME5
, "May")
1078 LOCVAL(LOCALE_SABBREVMONTHNAME6
, "Jun")
1079 LOCVAL(LOCALE_SABBREVMONTHNAME7
, "Jul")
1080 LOCVAL(LOCALE_SABBREVMONTHNAME8
, "Aug")
1081 LOCVAL(LOCALE_SABBREVMONTHNAME9
, "Sep")
1082 LOCVAL(LOCALE_SABBREVMONTHNAME10
, "Oct")
1083 LOCVAL(LOCALE_SABBREVMONTHNAME11
, "Nov")
1084 LOCVAL(LOCALE_SABBREVMONTHNAME12
, "Dec")
1085 LOCVAL(LOCALE_SABBREVMONTHNAME13
, "")
1086 LOCVAL(LOCALE_SPOSITIVESIGN
, "")
1087 LOCVAL(LOCALE_SNEGATIVESIGN
, "-")
1088 LOCVAL(LOCALE_IPOSSIGNPOSN
, "3")
1089 LOCVAL(LOCALE_INEGSIGNPOSN
, "3")
1090 LOCVAL(LOCALE_IPOSSYMPRECEDES
, "1")
1091 LOCVAL(LOCALE_IPOSSEPBYSPACE
, "0")
1092 LOCVAL(LOCALE_INEGSYMPRECEDES
, "1")
1093 LOCVAL(LOCALE_INEGSEPBYSPACE
, "0")
1094 default: found
=0;break;
1096 break; /* LANG(0x0809) (U.K. English) */
1098 case LANG_Ko
: /* string using codepage 949 */
1100 LOCVAL(LOCALE_ILANGUAGE
,"18")
1101 LOCVAL(LOCALE_SLANGUAGE
,"\307\321\261\271\276\356")
1102 LOCVAL(LOCALE_SENGLANGUAGE
,"Korean")
1103 LOCVAL(LOCALE_SABBREVLANGNAME
,"KOR")
1104 LOCVAL(LOCALE_SNATIVELANGNAME
,"\307\321\261\271\276\356")
1105 LOCVAL(LOCALE_ICOUNTRY
,"82")
1106 LOCVAL(LOCALE_SCOUNTRY
,"\264\353\307\321\271\316\261\271")
1107 LOCVAL(LOCALE_SENGCOUNTRY
,"Korea (South)")
1108 LOCVAL(LOCALE_SABBREVCTRYNAME
,"KOR")
1109 LOCVAL(LOCALE_SNATIVECTRYNAME
,"\264\353\307\321\271\316\261\271")
1110 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"18")
1111 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"82")
1112 LOCVAL(LOCALE_IDEFAULTCODEPAGE
,"949")
1113 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
,"949")
1114 LOCVAL(LOCALE_SLIST
,",")
1115 LOCVAL(LOCALE_IMEASURE
,"0")
1116 LOCVAL(LOCALE_SDECIMAL
,".")
1117 LOCVAL(LOCALE_STHOUSAND
,",")
1118 LOCVAL(LOCALE_SGROUPING
,"3;0")
1119 LOCVAL(LOCALE_IDIGITS
,"2")
1120 LOCVAL(LOCALE_ILZERO
,"0")
1121 LOCVAL(LOCALE_INEGNUMBER
,"1")
1122 LOCVAL(LOCALE_SNATIVEDIGITS
,"0123456789")
1123 LOCVAL(LOCALE_SCURRENCY
,"\\")
1124 LOCVAL(LOCALE_SINTLSYMBOL
,"Won")
1125 LOCVAL(LOCALE_SMONDECIMALSEP
,".")
1126 LOCVAL(LOCALE_SMONTHOUSANDSEP
,",")
1127 LOCVAL(LOCALE_SMONGROUPING
,"3;0")
1128 LOCVAL(LOCALE_ICURRDIGITS
,"2")
1129 LOCVAL(LOCALE_IINTLCURRDIGITS
,"2")
1130 LOCVAL(LOCALE_ICURRENCY
,"3")
1131 LOCVAL(LOCALE_INEGCURR
,"8")
1132 LOCVAL(LOCALE_SDATE
,"/")
1133 LOCVAL(LOCALE_STIME
,":")
1134 LOCVAL(LOCALE_SSHORTDATE
,"yyyy/MM/dd")
1135 LOCVAL(LOCALE_SLONGDATE
,"yyyy/MM/dd")
1136 LOCVAL(LOCALE_STIMEFORMAT
,"h:mm:ss tt")
1137 LOCVAL(LOCALE_IDATE
,"1")
1138 LOCVAL(LOCALE_ILDATE
,"1")
1139 LOCVAL(LOCALE_ITIME
,"1")
1140 LOCVAL(LOCALE_ITIMEMARKPOSN
,"0")
1141 LOCVAL(LOCALE_ICENTURY
,"0")
1142 LOCVAL(LOCALE_ITLZERO
,"0")
1143 LOCVAL(LOCALE_IDAYLZERO
,"0")
1144 LOCVAL(LOCALE_IMONLZERO
,"0")
1145 LOCVAL(LOCALE_S1159
,"\277\300\300\374")
1146 LOCVAL(LOCALE_S2359
,"\277\300\310\304")
1147 LOCVAL(LOCALE_ICALENDARTYPE
,"1")
1148 /* Korean Tangun Era calendar */
1149 LOCVAL(LOCALE_IOPTIONALCALENDAR
,"5")
1150 LOCVAL(LOCALE_IFIRSTDAYOFWEEK
,"6")
1151 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR
,"0")
1152 LOCVAL(LOCALE_SDAYNAME1
,"\277\371\277\344\300\317")
1153 LOCVAL(LOCALE_SDAYNAME2
,"\310\255\277\344\300\317")
1154 LOCVAL(LOCALE_SDAYNAME3
,"\274\366\277\344\300\317")
1155 LOCVAL(LOCALE_SDAYNAME4
,"\270\361\277\344\300\317")
1156 LOCVAL(LOCALE_SDAYNAME5
,"\261\335\277\344\300\317")
1157 LOCVAL(LOCALE_SDAYNAME6
,"\305\344\277\344\300\317")
1158 LOCVAL(LOCALE_SDAYNAME7
,"\300\317\277\344\300\317")
1159 LOCVAL(LOCALE_SABBREVDAYNAME1
,"\277\371")
1160 LOCVAL(LOCALE_SABBREVDAYNAME2
,"\310\255")
1161 LOCVAL(LOCALE_SABBREVDAYNAME3
,"\274\366")
1162 LOCVAL(LOCALE_SABBREVDAYNAME4
,"\270\361")
1163 LOCVAL(LOCALE_SABBREVDAYNAME5
,"\261\335")
1164 LOCVAL(LOCALE_SABBREVDAYNAME6
,"\305\344")
1165 LOCVAL(LOCALE_SABBREVDAYNAME7
,"\300\317")
1166 LOCVAL(LOCALE_SMONTHNAME1
,"1\277\371")
1167 LOCVAL(LOCALE_SMONTHNAME2
,"2\277\371")
1168 LOCVAL(LOCALE_SMONTHNAME3
,"3\277\371")
1169 LOCVAL(LOCALE_SMONTHNAME4
,"4\277\371")
1170 LOCVAL(LOCALE_SMONTHNAME5
,"5\277\371")
1171 LOCVAL(LOCALE_SMONTHNAME6
,"6\277\371")
1172 LOCVAL(LOCALE_SMONTHNAME7
,"7\277\371")
1173 LOCVAL(LOCALE_SMONTHNAME8
,"8\277\371")
1174 LOCVAL(LOCALE_SMONTHNAME9
,"9\277\371")
1175 LOCVAL(LOCALE_SMONTHNAME10
,"10\277\371")
1176 LOCVAL(LOCALE_SMONTHNAME11
,"11\277\371")
1177 LOCVAL(LOCALE_SMONTHNAME12
,"12\277\371")
1178 LOCVAL(LOCALE_SMONTHNAME13
,"")
1179 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"1\277\371")
1180 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"2\277\371")
1181 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"3\277\371")
1182 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"4\277\371")
1183 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"5\277\371")
1184 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"6\277\371")
1185 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"7\277\371")
1186 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"8\277\371")
1187 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"9\277\371")
1188 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"10\277\371")
1189 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"11\277\371")
1190 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"12\277\371")
1191 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
1192 LOCVAL(LOCALE_SPOSITIVESIGN
,"")
1193 LOCVAL(LOCALE_SNEGATIVESIGN
,"-")
1194 LOCVAL(LOCALE_IPOSSIGNPOSN
,"3")
1195 LOCVAL(LOCALE_INEGSIGNPOSN
,"0")
1196 LOCVAL(LOCALE_IPOSSYMPRECEDES
,"3")
1197 LOCVAL(LOCALE_IPOSSEPBYSPACE
,"0")
1198 LOCVAL(LOCALE_INEGSYMPRECEDES
,"3")
1199 LOCVAL(LOCALE_INEGSEPBYSPACE
,"0")
1200 default: found
=0;break;
1202 break; /* LANG(Ko) */
1206 LOCVAL(LOCALE_ILANGUAGE
,"9")
1207 LOCVAL(LOCALE_SLANGUAGE
,"Magyar")
1208 LOCVAL(LOCALE_SENGLANGUAGE
,"Hungarian")
1209 LOCVAL(LOCALE_SABBREVLANGNAME
,"hun")
1210 LOCVAL(LOCALE_SNATIVELANGNAME
,"Magyar")
1211 LOCVAL(LOCALE_ICOUNTRY
,"36")
1212 LOCVAL(LOCALE_SCOUNTRY
,"Magyarország")
1213 LOCVAL(LOCALE_SENGCOUNTRY
,"Hungary")
1214 LOCVAL(LOCALE_SABBREVCTRYNAME
,"Hu")
1215 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Magyarország")
1216 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"9")
1217 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"36")
1218 LOCVAL(LOCALE_IDEFAULTCODEPAGE
,"852")
1219 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
,"852")
1220 LOCVAL(LOCALE_SLIST
,";")
1221 LOCVAL(LOCALE_IMEASURE
,"0")
1222 LOCVAL(LOCALE_SDECIMAL
,".")
1223 LOCVAL(LOCALE_STHOUSAND
,",")
1225 LOCVAL(LOCALE_SGROUPING)
1227 LOCVAL(LOCALE_IDIGITS
,"2")
1228 LOCVAL(LOCALE_ILZERO
,"1")
1230 LOCVAL(LOCALE_INEGNUMBER)
1231 Is this "0123456789" ??
1232 LOCVAL(LOCALE_SNATIVEDIGITS)
1234 LOCVAL(LOCALE_SCURRENCY
,"Ft")
1236 LOCVAL(LOCALE_SINTLSYMBOL)
1237 LOCVAL(LOCALE_SMONDECIMALSEP)
1238 LOCVAL(LOCALE_SMONTHOUSANDSEP)
1239 LOCVAL(LOCALE_SMONGROUPING)
1241 LOCVAL(LOCALE_ICURRDIGITS
,"0")
1243 LOCVAL(LOCALE_IINTLCURRDIGITS)
1245 LOCVAL(LOCALE_ICURRENCY
,"3")
1246 LOCVAL(LOCALE_INEGCURR
,"8")
1247 LOCVAL(LOCALE_SDATE
,"/")
1248 LOCVAL(LOCALE_STIME
,":")
1249 LOCVAL(LOCALE_SSHORTDATE
,"yyyy.MM.dd")
1250 LOCVAL(LOCALE_SLONGDATE
,"ddd, yyyy. MMMM d")
1252 LOCVAL(LOCALE_STIMEFORMAT)
1254 LOCVAL(LOCALE_IDATE
,"1")
1256 LOCVAL(LOCALE_ILDATE)
1258 LOCVAL(LOCALE_ITIME
,"1")
1260 LOCVAL(LOCALE_ITIMEMARKPOSN)
1261 LOCVAL(LOCALE_ICENTURY)
1263 LOCVAL(LOCALE_ITLZERO
,"1")
1265 LOCVAL(LOCALE_IDAYLZERO)
1266 LOCVAL(LOCALE_IMONLZERO)
1267 LOCVAL(LOCALE_S1159)
1268 LOCVAL(LOCALE_S2359)
1269 LOCVAL(LOCALE_ICALENDARTYPE)
1270 LOCVAL(LOCALE_IOPTIONALCALENDAR)
1271 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
1272 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
1274 LOCVAL(LOCALE_SDAYNAME1
,"Hétfõ")
1275 LOCVAL(LOCALE_SDAYNAME2
,"Kedd")
1276 LOCVAL(LOCALE_SDAYNAME3
,"Szerda")
1277 LOCVAL(LOCALE_SDAYNAME4
,"Csütörtök")
1278 LOCVAL(LOCALE_SDAYNAME5
,"Péntek")
1279 LOCVAL(LOCALE_SDAYNAME6
,"Szombat")
1280 LOCVAL(LOCALE_SDAYNAME7
,"Vasárnap")
1281 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Hé")
1282 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ke")
1283 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Se")
1284 LOCVAL(LOCALE_SABBREVDAYNAME4
,"Cs")
1285 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Pé")
1286 LOCVAL(LOCALE_SABBREVDAYNAME6
,"So")
1287 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Va")
1288 LOCVAL(LOCALE_SMONTHNAME1
,"Január")
1289 LOCVAL(LOCALE_SMONTHNAME2
,"Február")
1290 LOCVAL(LOCALE_SMONTHNAME3
,"Március")
1291 LOCVAL(LOCALE_SMONTHNAME4
,"Április")
1292 LOCVAL(LOCALE_SMONTHNAME5
,"Május")
1293 LOCVAL(LOCALE_SMONTHNAME6
,"Június")
1294 LOCVAL(LOCALE_SMONTHNAME7
,"Július")
1295 LOCVAL(LOCALE_SMONTHNAME8
,"Augusztus")
1296 LOCVAL(LOCALE_SMONTHNAME9
,"Szeptember")
1297 LOCVAL(LOCALE_SMONTHNAME10
,"Október")
1298 LOCVAL(LOCALE_SMONTHNAME11
,"November")
1299 LOCVAL(LOCALE_SMONTHNAME12
,"December")
1300 LOCVAL(LOCALE_SMONTHNAME13
,"")
1301 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Jan")
1302 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
1303 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Már")
1304 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Ápr")
1305 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Máj")
1306 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Jún")
1307 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Júl")
1308 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Aug")
1309 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Sze")
1310 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Okt")
1311 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
1312 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dec")
1313 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
1315 LOCVAL(LOCALE_SPOSITIVESIGN)
1316 LOCVAL(LOCALE_SNEGATIVESIGN)
1317 LOCVAL(LOCALE_IPOSSIGNPOSN)
1318 LOCVAL(LOCALE_INEGSIGNPOSN)
1319 LOCVAL(LOCALE_IPOSSYMPRECEDES)
1320 LOCVAL(LOCALE_IPOSSEPBYSPACE)
1321 LOCVAL(LOCALE_INEGSYMPRECEDES)
1322 LOCVAL(LOCALE_INEGSEPBYSPACE)
1324 default: found
=0;break;
1326 break; /* LANG(En) */
1330 LOCVAL(LOCALE_ILANGUAGE
,"9")
1331 LOCVAL(LOCALE_SLANGUAGE
,"Polski")
1332 LOCVAL(LOCALE_SENGLANGUAGE
,"Polish")
1333 LOCVAL(LOCALE_SABBREVLANGNAME
, "pol")
1334 LOCVAL(LOCALE_SNATIVELANGNAME
,"Polski")
1335 LOCVAL(LOCALE_ICOUNTRY
,"49")
1336 LOCVAL(LOCALE_SCOUNTRY
,"Polska")
1337 LOCVAL(LOCALE_SENGCOUNTRY
,"Poland")
1338 LOCVAL(LOCALE_SABBREVCTRYNAME
,"Pl")
1339 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Polska")
1340 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"9")
1341 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"49")
1342 LOCVAL(LOCALE_IDEFAULTCODEPAGE
,"1252")
1343 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
,"1252")
1344 LOCVAL(LOCALE_SLIST
,";")
1345 LOCVAL(LOCALE_IMEASURE
,"0")
1346 LOCVAL(LOCALE_SDECIMAL
,",")
1347 LOCVAL(LOCALE_STHOUSAND
," ")
1349 LOCVAL(LOCALE_SGROUPING)
1351 LOCVAL(LOCALE_IDIGITS
,"2")
1352 LOCVAL(LOCALE_ILZERO
,"1")
1354 LOCVAL(LOCALE_INEGNUMBER)
1355 Is this "0123456789" ??
1356 LOCVAL(LOCALE_SNATIVEDIGITS)
1358 LOCVAL(LOCALE_SCURRENCY
,"z\xB3")
1360 LOCVAL(LOCALE_SINTLSYMBOL)
1361 LOCVAL(LOCALE_SMONDECIMALSEP)
1362 LOCVAL(LOCALE_SMONTHOUSANDSEP)
1363 LOCVAL(LOCALE_SMONGROUPING)
1365 LOCVAL(LOCALE_ICURRDIGITS
,"2")
1367 LOCVAL(LOCALE_IINTLCURRDIGITS)
1369 LOCVAL(LOCALE_ICURRENCY
,"3")
1370 LOCVAL(LOCALE_INEGCURR
,"8")
1371 LOCVAL(LOCALE_SDATE
,".")
1372 LOCVAL(LOCALE_STIME
,":")
1373 LOCVAL(LOCALE_SSHORTDATE
,"dd.MM.yyyy")
1374 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
1376 LOCVAL(LOCALE_STIMEFORMAT)
1378 LOCVAL(LOCALE_IDATE
,"1")
1380 LOCVAL(LOCALE_ILDATE)
1382 LOCVAL(LOCALE_ITIME
,"1")
1384 LOCVAL(LOCALE_ITIMEMARKPOSN)
1385 LOCVAL(LOCALE_ICENTURY)
1387 LOCVAL(LOCALE_ITLZERO
,"1")
1389 LOCVAL(LOCALE_IDAYLZERO)
1390 LOCVAL(LOCALE_IMONLZERO)
1391 LOCVAL(LOCALE_S1159)
1392 LOCVAL(LOCALE_S2359)
1393 LOCVAL(LOCALE_ICALENDARTYPE)
1394 LOCVAL(LOCALE_IOPTIONALCALENDAR)
1395 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
1396 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
1398 LOCVAL(LOCALE_SDAYNAME1
,"Poniedzia\263ek")
1399 LOCVAL(LOCALE_SDAYNAME2
,"Wtorek")
1400 LOCVAL(LOCALE_SDAYNAME3
,"Sroda")
1401 LOCVAL(LOCALE_SDAYNAME4
,"Czwartek")
1402 LOCVAL(LOCALE_SDAYNAME5
,"Pi\xB9tek")
1403 LOCVAL(LOCALE_SDAYNAME6
,"Sobota")
1404 LOCVAL(LOCALE_SDAYNAME7
,"Niedziela")
1405 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Po")
1406 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Wt")
1407 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Sr")
1408 LOCVAL(LOCALE_SABBREVDAYNAME4
,"Cz")
1409 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Pt")
1410 LOCVAL(LOCALE_SABBREVDAYNAME6
,"So")
1411 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Ni")
1412 LOCVAL(LOCALE_SMONTHNAME1
,"Stycze\xF1")
1413 LOCVAL(LOCALE_SMONTHNAME2
,"Luty")
1414 LOCVAL(LOCALE_SMONTHNAME3
,"Marzec")
1415 LOCVAL(LOCALE_SMONTHNAME4
,"Kwiecie\xF1")
1416 LOCVAL(LOCALE_SMONTHNAME5
,"Maj")
1417 LOCVAL(LOCALE_SMONTHNAME6
,"Czerwiec")
1418 LOCVAL(LOCALE_SMONTHNAME7
,"Lipiec")
1419 LOCVAL(LOCALE_SMONTHNAME8
,"Sierpie\xF1")
1420 LOCVAL(LOCALE_SMONTHNAME9
,"Wrzesie\xF1")
1421 LOCVAL(LOCALE_SMONTHNAME10
,"Pa\237dziernik")
1422 LOCVAL(LOCALE_SMONTHNAME11
,"Listapad")
1423 LOCVAL(LOCALE_SMONTHNAME12
,"Grudzie\xF1")
1424 LOCVAL(LOCALE_SMONTHNAME13
,"")
1425 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Sty")
1426 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Lut")
1427 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mar")
1428 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Kwi")
1429 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Maj")
1430 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Cze")
1431 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Lip")
1432 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Sie")
1433 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Wrz")
1434 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Pa\x9F")
1435 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Lis")
1436 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Gru")
1437 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
1439 LOCVAL(LOCALE_SPOSITIVESIGN)
1440 LOCVAL(LOCALE_SNEGATIVESIGN)
1441 LOCVAL(LOCALE_IPOSSIGNPOSN)
1442 LOCVAL(LOCALE_INEGSIGNPOSN)
1443 LOCVAL(LOCALE_IPOSSYMPRECEDES)
1444 LOCVAL(LOCALE_IPOSSEPBYSPACE)
1445 LOCVAL(LOCALE_INEGSYMPRECEDES)
1446 LOCVAL(LOCALE_INEGSEPBYSPACE)
1448 default: found
=0;break;
1450 break; /* LANG(Pl) */
1454 LOCVAL(LOCALE_ILANGUAGE
, "0416")
1455 LOCVAL(LOCALE_SLANGUAGE
, "Portugu\352s (Brasil)")
1456 LOCVAL(LOCALE_SENGLANGUAGE
, "Protuguese")
1457 LOCVAL(LOCALE_SABBREVLANGNAME
, "POR")
1458 LOCVAL(LOCALE_SNATIVELANGNAME
, "Portugu\352s")
1459 LOCVAL(LOCALE_ICOUNTRY
, "1")
1460 LOCVAL(LOCALE_SCOUNTRY
, "Brasil")
1461 LOCVAL(LOCALE_SENGCOUNTRY
, "Brazil")
1462 LOCVAL(LOCALE_SABBREVCTRYNAME
, "BRA")
1463 LOCVAL(LOCALE_SNATIVECTRYNAME
, "Brasil")
1464 LOCVAL(LOCALE_IDEFAULTLANGUAGE
, "0409")
1465 LOCVAL(LOCALE_IDEFAULTCOUNTRY
, "1")
1466 LOCVAL(LOCALE_IDEFAULTCODEPAGE
, "437")
1467 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
, "1252")
1468 LOCVAL(LOCALE_SLIST
, ";")
1469 LOCVAL(LOCALE_IMEASURE
, "1")
1470 LOCVAL(LOCALE_SDECIMAL
, ",")
1471 LOCVAL(LOCALE_STHOUSAND
, ".")
1472 LOCVAL(LOCALE_SGROUPING
, "3;0")
1473 LOCVAL(LOCALE_IDIGITS
, "2")
1474 LOCVAL(LOCALE_ILZERO
, "1")
1475 LOCVAL(LOCALE_INEGNUMBER
, "1")
1476 LOCVAL(LOCALE_SNATIVEDIGITS
, "0123456789")
1477 LOCVAL(LOCALE_SCURRENCY
, "$")
1478 LOCVAL(LOCALE_SINTLSYMBOL
, "USD")
1479 LOCVAL(LOCALE_SMONDECIMALSEP
, ",")
1480 LOCVAL(LOCALE_SMONTHOUSANDSEP
, ".")
1481 LOCVAL(LOCALE_SMONGROUPING
, "3;0")
1482 LOCVAL(LOCALE_ICURRDIGITS
, "2")
1483 LOCVAL(LOCALE_IINTLCURRDIGITS
, "2")
1484 LOCVAL(LOCALE_ICURRENCY
, "0")
1485 LOCVAL(LOCALE_INEGCURR
, "0")
1486 LOCVAL(LOCALE_SDATE
, "/")
1487 LOCVAL(LOCALE_STIME
, ":")
1488 LOCVAL(LOCALE_SSHORTDATE
, "dd/MM/yy")
1489 LOCVAL(LOCALE_SLONGDATE
, "dddd, MMMM dd, yyyy")
1490 LOCVAL(LOCALE_STIMEFORMAT
, "h:mm:ss tt")
1491 LOCVAL(LOCALE_IDATE
, "0")
1492 LOCVAL(LOCALE_ILDATE
, "0")
1493 LOCVAL(LOCALE_ITIME
, "0")
1494 LOCVAL(LOCALE_ITIMEMARKPOSN
, "0")
1495 LOCVAL(LOCALE_ICENTURY
, "0")
1496 LOCVAL(LOCALE_ITLZERO
, "0")
1497 LOCVAL(LOCALE_IDAYLZERO
, "0")
1498 LOCVAL(LOCALE_IMONLZERO
, "0")
1499 LOCVAL(LOCALE_S1159
, "AM")
1500 LOCVAL(LOCALE_S2359
, "PM")
1501 LOCVAL(LOCALE_ICALENDARTYPE
, "1")
1502 LOCVAL(LOCALE_IOPTIONALCALENDAR
, "0")
1503 LOCVAL(LOCALE_IFIRSTDAYOFWEEK
, "6")
1504 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR
, "0")
1505 LOCVAL(LOCALE_SDAYNAME1
, "Segunda")
1506 LOCVAL(LOCALE_SDAYNAME2
, "Ter\347a")
1507 LOCVAL(LOCALE_SDAYNAME3
, "Quarta")
1508 LOCVAL(LOCALE_SDAYNAME4
, "Quinta")
1509 LOCVAL(LOCALE_SDAYNAME5
, "Sexta")
1510 LOCVAL(LOCALE_SDAYNAME6
, "S\341bado")
1511 LOCVAL(LOCALE_SDAYNAME7
, "Domingo")
1512 LOCVAL(LOCALE_SABBREVDAYNAME1
, "Seg")
1513 LOCVAL(LOCALE_SABBREVDAYNAME2
, "Ter")
1514 LOCVAL(LOCALE_SABBREVDAYNAME3
, "Qua")
1515 LOCVAL(LOCALE_SABBREVDAYNAME4
, "Qui")
1516 LOCVAL(LOCALE_SABBREVDAYNAME5
, "Sex")
1517 LOCVAL(LOCALE_SABBREVDAYNAME6
, "S\341b")
1518 LOCVAL(LOCALE_SABBREVDAYNAME7
, "Dom")
1519 LOCVAL(LOCALE_SMONTHNAME1
, "Janeiro")
1520 LOCVAL(LOCALE_SMONTHNAME2
, "Fevereiro")
1521 LOCVAL(LOCALE_SMONTHNAME3
, "Mar\347o")
1522 LOCVAL(LOCALE_SMONTHNAME4
, "Abril")
1523 LOCVAL(LOCALE_SMONTHNAME5
, "Maio")
1524 LOCVAL(LOCALE_SMONTHNAME6
, "Junho")
1525 LOCVAL(LOCALE_SMONTHNAME7
, "Julho")
1526 LOCVAL(LOCALE_SMONTHNAME8
, "Agosto")
1527 LOCVAL(LOCALE_SMONTHNAME9
, "Setembro")
1528 LOCVAL(LOCALE_SMONTHNAME10
, "Outubro")
1529 LOCVAL(LOCALE_SMONTHNAME11
, "Novembro")
1530 LOCVAL(LOCALE_SMONTHNAME12
, "Dezembro")
1531 LOCVAL(LOCALE_SMONTHNAME13
, "")
1532 LOCVAL(LOCALE_SABBREVMONTHNAME1
, "Jan")
1533 LOCVAL(LOCALE_SABBREVMONTHNAME2
, "Fev")
1534 LOCVAL(LOCALE_SABBREVMONTHNAME3
, "Mar")
1535 LOCVAL(LOCALE_SABBREVMONTHNAME4
, "Abr")
1536 LOCVAL(LOCALE_SABBREVMONTHNAME5
, "Mai")
1537 LOCVAL(LOCALE_SABBREVMONTHNAME6
, "Jun")
1538 LOCVAL(LOCALE_SABBREVMONTHNAME7
, "Jul")
1539 LOCVAL(LOCALE_SABBREVMONTHNAME8
, "Ago")
1540 LOCVAL(LOCALE_SABBREVMONTHNAME9
, "Set")
1541 LOCVAL(LOCALE_SABBREVMONTHNAME10
, "Out")
1542 LOCVAL(LOCALE_SABBREVMONTHNAME11
, "Nov")
1543 LOCVAL(LOCALE_SABBREVMONTHNAME12
, "Dez")
1544 LOCVAL(LOCALE_SABBREVMONTHNAME13
, "")
1545 LOCVAL(LOCALE_SPOSITIVESIGN
, "")
1546 LOCVAL(LOCALE_SNEGATIVESIGN
, "-")
1547 LOCVAL(LOCALE_IPOSSIGNPOSN
, "3")
1548 LOCVAL(LOCALE_INEGSIGNPOSN
, "0")
1549 LOCVAL(LOCALE_IPOSSYMPRECEDES
, "1")
1550 LOCVAL(LOCALE_IPOSSEPBYSPACE
, "0")
1551 LOCVAL(LOCALE_INEGSYMPRECEDES
, "1")
1552 LOCVAL(LOCALE_INEGSEPBYSPACE
, "0")
1553 default: found
=0;break;
1555 break; /* LANG(Po) */
1559 LOCVAL(LOCALE_ILANGUAGE
,"1d")
1560 LOCVAL(LOCALE_SLANGUAGE
,"Svenska")
1561 LOCVAL(LOCALE_SENGLANGUAGE
,"Swedish")
1562 LOCVAL(LOCALE_SABBREVLANGNAME
,"SV")
1563 LOCVAL(LOCALE_SNATIVELANGNAME
,"Svenska")
1564 LOCVAL(LOCALE_ICOUNTRY
,"45")
1565 LOCVAL(LOCALE_SCOUNTRY
,"SWE")
1566 LOCVAL(LOCALE_SENGCOUNTRY
,"Sweden")
1567 LOCVAL(LOCALE_SABBREVCTRYNAME
,"SVE")
1568 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Sverige")
1569 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"1d")
1570 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"45")
1571 /* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
1572 /* LOCVAL(LOCALE_IDEFAULTANSICODEPAGE) */
1573 LOCVAL(LOCALE_SLIST
,";")
1574 LOCVAL(LOCALE_IMEASURE
,"0")
1575 LOCVAL(LOCALE_SDECIMAL
,",")
1576 LOCVAL(LOCALE_STHOUSAND
,".")
1577 /* LOCVAL(LOCALE_SGROUPING) */
1578 LOCVAL(LOCALE_IDIGITS
,"2")
1579 LOCVAL(LOCALE_ILZERO
,"1")
1580 /* LOCVAL(LOCALE_INEGNUMBER) */
1581 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
1582 LOCVAL(LOCALE_SCURRENCY
,"kr")
1583 /* LOCVAL(LOCALE_SINTLSYMBOL) */
1584 LOCVAL(LOCALE_SMONDECIMALSEP
,",")
1585 LOCVAL(LOCALE_SMONTHOUSANDSEP
,".")
1586 /* LOCVAL(LOCALE_SMONGROUPING) */
1587 LOCVAL(LOCALE_ICURRDIGITS
,"2")
1588 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
1589 LOCVAL(LOCALE_ICURRENCY
,"3")
1590 LOCVAL(LOCALE_INEGCURR
,"8")
1591 LOCVAL(LOCALE_SDATE
,".")
1592 LOCVAL(LOCALE_STIME
,":")
1593 LOCVAL(LOCALE_SSHORTDATE
,"dd/MM-yyyy")
1594 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
1595 /* LOCVAL(LOCALE_STIMEFORMAT) */
1596 LOCVAL(LOCALE_IDATE
,"1")
1597 /* LOCVAL(LOCALE_ILDATE) */
1598 LOCVAL(LOCALE_ITIME
,"1")
1599 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
1600 /* LOCVAL(LOCALE_ICENTURY) */
1601 LOCVAL(LOCALE_ITLZERO
,"1")
1602 /* LOCVAL(LOCALE_IDAYLZERO) */
1603 /* LOCVAL(LOCALE_IMONLZERO) */
1604 LOCVAL(LOCALE_S1159
, "")
1605 LOCVAL(LOCALE_S2359
, "")
1606 /* LOCVAL(LOCALE_ICALENDARTYPE) */
1607 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
1608 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
1609 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
1610 LOCVAL(LOCALE_SDAYNAME1
,"Måndag")
1611 LOCVAL(LOCALE_SDAYNAME2
,"Tisdag")
1612 LOCVAL(LOCALE_SDAYNAME3
,"Onsdag")
1613 LOCVAL(LOCALE_SDAYNAME4
,"Torsdag")
1614 LOCVAL(LOCALE_SDAYNAME5
,"Fredag")
1615 LOCVAL(LOCALE_SDAYNAME6
,"Lördag")
1616 LOCVAL(LOCALE_SDAYNAME7
,"Söndag")
1617 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Må")
1618 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ti")
1619 LOCVAL(LOCALE_SABBREVDAYNAME3
,"On")
1620 LOCVAL(LOCALE_SABBREVDAYNAME4
,"To")
1621 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Fr")
1622 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Lö")
1623 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Sö")
1624 LOCVAL(LOCALE_SMONTHNAME1
,"Januari")
1625 LOCVAL(LOCALE_SMONTHNAME2
,"Februari")
1626 LOCVAL(LOCALE_SMONTHNAME3
,"Mars")
1627 LOCVAL(LOCALE_SMONTHNAME4
,"April")
1628 LOCVAL(LOCALE_SMONTHNAME5
,"Maj")
1629 LOCVAL(LOCALE_SMONTHNAME6
,"Juni")
1630 LOCVAL(LOCALE_SMONTHNAME7
,"Juli")
1631 LOCVAL(LOCALE_SMONTHNAME8
,"Augusti")
1632 LOCVAL(LOCALE_SMONTHNAME9
,"September")
1633 LOCVAL(LOCALE_SMONTHNAME10
,"Oktober")
1634 LOCVAL(LOCALE_SMONTHNAME11
,"November")
1635 LOCVAL(LOCALE_SMONTHNAME12
,"December")
1636 LOCVAL(LOCALE_SMONTHNAME13
,"")
1637 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Jan")
1638 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
1639 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mar")
1640 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
1641 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Maj")
1642 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Jun")
1643 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Jul")
1644 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Aug")
1645 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Sep")
1646 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Okt")
1647 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
1648 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dec")
1649 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
1650 LOCVAL(LOCALE_SPOSITIVESIGN
, "")
1651 LOCVAL(LOCALE_SNEGATIVESIGN
, "-")
1652 LOCVAL(LOCALE_IPOSSIGNPOSN
, "3")
1653 LOCVAL(LOCALE_INEGSIGNPOSN
, "3")
1654 LOCVAL(LOCALE_IPOSSYMPRECEDES
, "1")
1655 LOCVAL(LOCALE_IPOSSEPBYSPACE
, "0")
1656 LOCVAL(LOCALE_INEGSYMPRECEDES
, "1")
1657 LOCVAL(LOCALE_INEGSEPBYSPACE
, "0")
1658 default: found
=0;break;
1660 break; /* LANG(Sw) */
1662 /*Insert other languages here*/
1670 ERR(ole
,"'%s' not supported for your language.\n",
1672 retString
= "<WINE-NLS-unknown>";
1676 lstrcpyn32A(buf
,retString
,len
);
1677 return strlen(retString
)+1;
1680 /***********************************************************************
1681 * GetLocaleInfo32W (KERNEL32.230)
1682 * Is the last parameter really WORD for Win16?
1684 INT32 WINAPI
GetLocaleInfo32W(LCID lcid
,LCTYPE LCType
,LPWSTR wbuf
,INT32 len
)
1686 LPSTR abuf
= (LPSTR
)HeapAlloc(GetProcessHeap(),0,len
);
1688 INT32 n
= GetLocaleInfo32A(lcid
, LCType
, abuf
, len
);
1690 lstrcpynAtoW(wbuf
,abuf
,len
);
1691 HeapFree(GetProcessHeap(),0,abuf
);
1695 /***********************************************************************
1696 * CompareString16 (OLE2NLS.8)
1698 UINT16 WINAPI
CompareString16(DWORD lcid
,DWORD fdwStyle
,
1699 LPCSTR s1
,DWORD l1
,LPCSTR s2
,DWORD l2
)
1701 return (UINT16
)CompareString32A(lcid
,fdwStyle
,s1
,l1
,s2
,l2
);
1704 /***********************************************************************
1705 * CompareString32A (KERNEL32.29)
1706 * This implementation ignores the locale
1709 UINT32 WINAPI
CompareString32A(DWORD lcid
, DWORD fdwStyle
,
1710 LPCSTR s1
, DWORD l1
, LPCSTR s2
,DWORD l2
)
1713 if(fdwStyle
& NORM_IGNORENONSPACE
)
1714 FIXME(ole
, "IGNORENONSPACE not supprted\n");
1715 if(fdwStyle
& NORM_IGNORESYMBOLS
)
1716 FIXME(ole
, "IGNORESYMBOLS not supported\n");
1717 /* Is strcmp defaulting to string sort or to word sort?? */
1718 /* FIXME: Handle NORM_STRINGSORT */
1719 l1
= (l1
==-1)?strlen(s1
):l1
;
1720 l2
= (l2
==-1)?strlen(s2
):l2
;
1721 len
= l1
<l2
? l1
:l2
;
1722 ret
= (fdwStyle
& NORM_IGNORECASE
) ?
1723 lstrncmpi32A(s1
,s2
,len
) : lstrncmp32A(s1
,s2
,len
);
1724 /* not equal, return 1 or 3 */
1725 if(ret
!=0)return ret
+2;
1726 /* same len, return 2 */
1728 /* the longer one is lexically greater */
1729 return (l1
<l2
)? 1 : 3;
1732 /***********************************************************************
1733 * CompareString32W (KERNEL32.30)
1734 * This implementation ignores the locale
1737 UINT32 WINAPI
CompareString32W(DWORD lcid
, DWORD fdwStyle
,
1738 LPCWSTR s1
, DWORD l1
, LPCWSTR s2
,DWORD l2
)
1741 if(fdwStyle
& NORM_IGNORENONSPACE
)
1742 FIXME(ole
,"IGNORENONSPACE not supprted\n");
1743 if(fdwStyle
& NORM_IGNORESYMBOLS
)
1744 FIXME(ole
,"IGNORESYMBOLS not supported\n");
1746 /* Is strcmp defaulting to string sort or to word sort?? */
1747 /* FIXME: Handle NORM_STRINGSORT */
1748 l1
= (l1
==-1)?lstrlen32W(s1
):l1
;
1749 l2
= (l2
==-1)?lstrlen32W(s2
):l2
;
1750 len
= l1
<l2
? l1
:l2
;
1751 ret
= (fdwStyle
& NORM_IGNORECASE
) ?
1752 lstrncmpi32W(s1
,s2
,len
) : lstrncmp32W(s1
,s2
,len
);
1753 /* not equal, return 1 or 3 */
1754 if(ret
!=0) return ret
+2;
1755 /* same len, return 2 */
1756 if(l1
==l2
) return 2;
1757 /* the longer one is lexically greater */
1758 return (l1
<l2
)? 1 : 3;
1761 /***********************************************************************
1762 * SetLocaleInfoA [KERNEL32.499]
1764 BOOL16 WINAPI
SetLocaleInfoA(DWORD lcid
, DWORD lctype
, LPCSTR data
)
1766 FIXME(ole
,"(%ld,%ld,%s): stub\n",lcid
,lctype
,data
);
1770 /***********************************************************************
1771 * IsValidLocale [KERNEL32.361]
1773 BOOL32 WINAPI
IsValidLocale(LCID lcid
,DWORD flags
)
1775 /* we support ANY language. Well, at least say that...*/
1779 /***********************************************************************
1780 * EnumSystemLocales32W [KERNEL32.93]
1782 BOOL32 WINAPI
EnumSystemLocales32W( LOCALE_ENUMPROC32W lpfnLocaleEnum
,
1790 TRACE(win32
,"(%p,%08lx)\n",lpfnLocaleEnum
,flags
);
1791 /* see if we can reuse the Win95 registry entries.... */
1792 if (ERROR_SUCCESS
==RegOpenKey32A(HKEY_LOCAL_MACHINE
,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\",&xhkey
)) {
1795 if (ERROR_SUCCESS
!=RegEnumKey32W(xhkey
,i
,buffer
,sizeof(buffer
)))
1797 if (!lpfnLocaleEnum(buffer
))
1806 while (languages
[i
].langname
!=NULL
)
1811 sprintf(xbuffer
,"%08lx",(DWORD
)languages
[i
].langid
);
1813 cp
= HEAP_strdupAtoW( GetProcessHeap(), 0, xbuffer
);
1814 ret
= lpfnLocaleEnum(cp
);
1815 HeapFree( GetProcessHeap(), 0, cp
);
1822 /***********************************************************************
1823 * EnumSystemLocales32A [KERNEL32.92]
1825 BOOL32 WINAPI
EnumSystemLocales32A(LOCALE_ENUMPROC32A lpfnLocaleEnum
,
1832 TRACE(win32
,"(%p,%08lx)\n",
1833 lpfnLocaleEnum
,flags
1835 if (ERROR_SUCCESS
==RegOpenKey32A(HKEY_LOCAL_MACHINE
,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\",&xhkey
)) {
1838 if (ERROR_SUCCESS
!=RegEnumKey32A(xhkey
,i
,buffer
,sizeof(buffer
)))
1840 if (!lpfnLocaleEnum(buffer
))
1848 while (languages
[i
].langname
!=NULL
) {
1849 sprintf(buffer
,"%08lx",(DWORD
)languages
[i
].langid
);
1850 if (!lpfnLocaleEnum(buffer
))
1857 /***********************************************************************
1858 * GetStringTypeA [OLE2NLS.7]
1860 BOOL16 WINAPI
GetStringType16(LCID locale
,DWORD dwInfoType
,LPCSTR src
,
1861 INT16 cchSrc
,LPWORD chartype
)
1863 return GetStringTypeEx32A(locale
,dwInfoType
,src
,cchSrc
,chartype
);
1865 /***********************************************************************
1866 * GetStringTypeA [KERNEL32.277]
1868 BOOL32 WINAPI
GetStringType32A(LCID locale
,DWORD dwInfoType
,LPCSTR src
,
1869 INT32 cchSrc
,LPWORD chartype
)
1871 return GetStringTypeEx32A(locale
,dwInfoType
,src
,cchSrc
,chartype
);
1873 /***********************************************************************
1874 * GetStringTypeExA [KERNEL32.276]
1876 BOOL32 WINAPI
GetStringTypeEx32A(LCID locale
,DWORD dwInfoType
,LPCSTR src
,
1877 INT32 cchSrc
,LPWORD chartype
)
1881 switch (dwInfoType
) {
1883 FIXME(ole
,"CT_CTYPE2 not supported.\n");
1886 FIXME(ole
,"CT_CTYPE3 not supported.\n");
1891 cchSrc
=lstrlen32A(src
);
1892 for (i
=0;i
<cchSrc
;i
++) {
1894 if (isdigit(src
[i
])) chartype
[i
]|=C1_DIGIT
;
1895 if (isalpha(src
[i
])) chartype
[i
]|=C1_ALPHA
;
1896 if (islower(src
[i
])) chartype
[i
]|=C1_LOWER
;
1897 if (isupper(src
[i
])) chartype
[i
]|=C1_UPPER
;
1898 if (isspace(src
[i
])) chartype
[i
]|=C1_SPACE
;
1899 if (ispunct(src
[i
])) chartype
[i
]|=C1_PUNCT
;
1900 if (iscntrl(src
[i
])) chartype
[i
]|=C1_CNTRL
;
1901 /* FIXME: isblank() is a GNU extension */
1902 /* if (isblank(src[i])) chartype[i]|=C1_BLANK; */
1903 if ((src
[i
] == ' ') || (src
[i
] == '\t')) chartype
[i
]|=C1_BLANK
;
1909 /*********************************************************************
1910 * GetStringTypeW [KERNEL32.279]
1913 * Yes, this is missing LCID locale. MS fault.
1915 BOOL32 WINAPI
GetStringType32W(DWORD dwInfoType
,LPCWSTR src
,INT32 cchSrc
,
1918 return GetStringTypeEx32W(0/*defaultlocale*/,dwInfoType
,src
,cchSrc
,chartype
);
1921 /*********************************************************************
1922 * GetStringTypeW [KERNEL32.278]
1923 * FIXME: unicode chars are assumed chars
1925 BOOL32 WINAPI
GetStringTypeEx32W(LCID locale
,DWORD dwInfoType
,LPCWSTR src
,
1926 INT32 cchSrc
,LPWORD chartype
)
1930 switch (dwInfoType
) {
1932 FIXME(ole
,"CT_CTYPE2 not supported.\n");
1935 FIXME(ole
,"CT_CTYPE3 not supported.\n");
1940 cchSrc
=lstrlen32W(src
);
1941 for (i
=0;i
<cchSrc
;i
++) {
1943 if (isdigit(src
[i
])) chartype
[i
]|=C1_DIGIT
;
1944 if (isalpha(src
[i
])) chartype
[i
]|=C1_ALPHA
;
1945 if (islower(src
[i
])) chartype
[i
]|=C1_LOWER
;
1946 if (isupper(src
[i
])) chartype
[i
]|=C1_UPPER
;
1947 if (isspace(src
[i
])) chartype
[i
]|=C1_SPACE
;
1948 if (ispunct(src
[i
])) chartype
[i
]|=C1_PUNCT
;
1949 if (iscntrl(src
[i
])) chartype
[i
]|=C1_CNTRL
;
1950 /* FIXME: isblank() is a GNU extension */
1951 /* if (isblank(src[i])) chartype[i]|=C1_BLANK; */
1952 if ((src
[i
] == ' ') || (src
[i
] == '\t')) chartype
[i
]|=C1_BLANK
;
1958 /*****************************************************************
1959 * VerLanguageName16 [VER.10]
1961 DWORD WINAPI
VerLanguageName16(UINT16 langid
,LPSTR langname
,UINT16 langnamelen
)
1966 TRACE(ver
,"(%d,%p,%d)\n",langid
,langname
,langnamelen
);
1967 /* First, check \System\CurrentControlSet\control\Nls\Locale\<langid>
1968 * from the registry.
1970 buf
=(char*)malloc(strlen("\\System\\CurrentControlSet\\control\\Nls\\Locale\\")+9);
1971 sprintf(buf
,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\%08x",langid
);
1972 if (ERROR_SUCCESS
==RegQueryValue16(HKEY_LOCAL_MACHINE
,buf
,langname
,(LPDWORD
)&langnamelen
)) {
1973 langname
[langnamelen
-1]='\0';
1976 /* if that fails, use the interal table */
1977 for (i
=0;languages
[i
].langid
!=0;i
++)
1978 if (langid
==languages
[i
].langid
)
1980 strncpy(langname
,languages
[i
].langname
,langnamelen
);
1981 langname
[langnamelen
-1]='\0';
1982 return strlen(languages
[i
].langname
);
1985 /*****************************************************************
1986 * VerLanguageName32A [VERSION.9]
1988 DWORD WINAPI
VerLanguageName32A(UINT32 langid
,LPSTR langname
,
1991 return VerLanguageName16(langid
,langname
,langnamelen
);
1994 /*****************************************************************
1995 * VerLanguageName32W [VERSION.10]
1997 DWORD WINAPI
VerLanguageName32W(UINT32 langid
,LPWSTR langname
,
2004 /* First, check \System\CurrentControlSet\control\Nls\Locale\<langid>
2005 * from the registry.
2007 sprintf(buffer
,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\%08x",langid
);
2008 keyname
= HEAP_strdupAtoW( GetProcessHeap(), 0, buffer
);
2009 if (ERROR_SUCCESS
==RegQueryValue32W(HKEY_LOCAL_MACHINE
,keyname
,langname
,(LPDWORD
)&langnamelen
)) {
2010 HeapFree( GetProcessHeap(), 0, keyname
);
2013 HeapFree( GetProcessHeap(), 0, keyname
);
2014 /* if that fails, use the interal table */
2015 for (i
=0;languages
[i
].langid
!=0;i
++)
2016 if (langid
==languages
[i
].langid
)
2018 lstrcpyAtoW( langname
, languages
[i
].langname
);
2019 return strlen(languages
[i
].langname
); /* same as strlenW(langname); */
2023 INT32 WINAPI
LCMapString32A(
2024 LCID lcid
,DWORD mapflags
,LPCSTR srcstr
,INT32 srclen
,LPSTR dststr
,
2029 TRACE(string
,"(0x%04lx,0x%08lx,%s,%d,%p,%d)\n",
2030 lcid
,mapflags
,srcstr
,srclen
,dststr
,dstlen
);
2031 if (!dstlen
|| !dststr
) {
2032 dststr
= (LPSTR
)srcstr
;
2034 if (!srclen
) srclen
= strlen(srcstr
);
2035 if (!dstlen
) dstlen
= strlen(dststr
);
2039 if (mapflags
& LCMAP_LOWERCASE
) {
2041 dststr
[i
]=tolower(srcstr
[i
]);
2042 mapflags
&= ~LCMAP_LOWERCASE
;
2044 if (mapflags
& LCMAP_UPPERCASE
) {
2046 dststr
[i
]=toupper(srcstr
[i
]);
2047 mapflags
&= ~LCMAP_UPPERCASE
;
2051 FIXME(ole
,"(0x%04lx,0x%08lx,%p,%d,%p,%d): "
2052 "unimplemented flags: 0x%08lx\n",
2053 lcid
,mapflags
,srcstr
,srclen
,dststr
,dstlen
,mapflags
);
2058 /* FIXME: implement everyhting & correct */
2060 INT32 WINAPI
LCMapString32W(
2061 LCID lcid
,DWORD mapflags
,LPCWSTR srcstr
,INT32 srclen
,LPWSTR dststr
,
2066 TRACE(string
,"(0x%04lx,0x%08lx,%p,%d,%p,%d)\n",
2067 lcid
,mapflags
,srcstr
,srclen
,dststr
,dstlen
2069 if (!dstlen
|| !dststr
) {
2070 dststr
= (LPWSTR
)srcstr
;
2072 if (!srclen
) srclen
= lstrlen32W(srcstr
);
2073 if (!dstlen
) dstlen
= lstrlen32W(dststr
);
2077 if (mapflags
& LCMAP_LOWERCASE
) {
2079 dststr
[i
]=tolower(srcstr
[i
]);
2080 mapflags
&= ~LCMAP_LOWERCASE
;
2082 if (mapflags
& LCMAP_UPPERCASE
) {
2084 dststr
[i
]=toupper(srcstr
[i
]);
2085 mapflags
&= ~LCMAP_UPPERCASE
;
2089 FIXME(ole
,"(0x%04lx,0x%08lx,%p,%d,%p,%d): "
2090 "unimplemented flags: 0x%08lx\n",
2091 lcid
,mapflags
,srcstr
,srclen
,dststr
,dstlen
,mapflags
);
2096 /*****************************************************************
2098 * OLE_GetFormatA() [internal]
2101 This function implements stuff for GetDateFormat() and
2104 d single-digit (no leading zero) day (of month)
2105 dd two-digit day (of month)
2106 ddd short day-of-week name
2107 dddd long day-of-week name
2108 M single-digit month
2110 MMM short month name
2111 MMMM full month name
2112 y two-digit year, no leading 0
2114 yyyy four-digit year
2116 h hours with no leading zero (12-hour)
2117 hh hours with full two digits
2118 H hours with no leading zero (24-hour)
2119 HH hours with full two digits
2120 m minutes with no leading zero
2121 mm minutes with full two digits
2122 s seconds with no leading zero
2123 ss seconds with full two digits
2124 t time marker (A or P)
2125 tt time marker (AM, PM)
2126 '' used to quote literal characters
2127 '' (within a quoted string) indicates a literal '
2129 These functions REQUIRE valid locale, date, and format.
2133 INT32 WINAPI
OLE_GetFormatA(LCID locale
,
2137 LPSTR date
, INT32 datelen
)
2139 INT32 inpos
, outpos
;
2140 int count
, type
, inquote
, Overflow
;
2144 const char * _dgfmt
[] = { "%d", "%02d" };
2145 const char ** dgfmt
= _dgfmt
- 1;
2147 /* report, for debugging */
2148 TRACE(ole
, "func(%8lx,%8lx, time(d=%d,h=%d,m=%d,s=%d), fmt:\'%s\' (at %p), %p (%9s), len=%d)\n", locale
, flags
,
2149 xtime
->wDay
, xtime
->wHour
, xtime
->wMinute
, xtime
->wSecond
,
2150 format
, format
, date
, date
, datelen
);
2152 /* initalize state variables and output buffer */
2154 count
= 0; inquote
= 0; Overflow
= 0;
2156 date
[0] = buf
[0] = '\0';
2158 for (inpos
= 0;; inpos
++) {
2159 /* TRACE(ole, "STATE inpos=%2d outpos=%2d count=%d inquote=%d type=%c buf,date = %c,%c\n", inpos, outpos, count, inquote, type, buf[inpos], date[outpos]); */
2161 if (format
[inpos
] == '\'') {
2162 if (format
[inpos
+1] == '\'') {
2164 date
[outpos
++] = '\'';
2167 continue; /* we did nothing to the output */
2169 } else if (format
[inpos
] == '\0') {
2170 date
[outpos
++] = '\0';
2171 if (outpos
> datelen
) Overflow
= 1;
2174 date
[outpos
++] = format
[inpos
];
2175 if (outpos
> datelen
) {
2177 date
[outpos
-1] = '\0'; /* this is the last place where
2178 it's safe to write */
2182 } else if ( (count
&& (format
[inpos
] != type
))
2184 || (count
== 2 && strchr("ghHmst", type
)) )
2188 GetLocaleInfo32A(locale
,
2190 + xtime
->wDayOfWeek
- 1,
2192 } else if (count
== 3) {
2193 GetLocaleInfo32A(locale
,
2194 LOCALE_SABBREVDAYNAME1
2195 + xtime
->wDayOfWeek
- 1,
2198 sprintf(buf
, dgfmt
[count
], xtime
->wDay
);
2200 } else if (type
== 'M') {
2202 GetLocaleInfo32A(locale
,
2203 LOCALE_SABBREVMONTHNAME1
2204 + xtime
->wMonth
- 1,
2206 } else if (count
== 4) {
2207 GetLocaleInfo32A(locale
,
2209 + xtime
->wMonth
- 1,
2212 sprintf(buf
, dgfmt
[count
], xtime
->wMonth
);
2214 } else if (type
== 'y') {
2216 sprintf(buf
, "%d", xtime
->wYear
);
2217 } else if (count
== 3) {
2221 c=%c, n=%d\n", type
, count
);
2223 sprintf(buf
, dgfmt
[count
], xtime
->wYear
% 100);
2225 } else if (type
== 'g') {
2227 FIXME(ole
, "LOCALE_ICALENDARTYPE unimp.\n");
2233 c=%c, n=%d\n", type
, count
);
2235 } else if (type
== 'h') {
2236 /* gives us hours 1:00 -- 12:00 */
2237 sprintf(buf
, dgfmt
[count
], (xtime
->wHour
-1)%12 +1);
2238 } else if (type
== 'H') {
2240 sprintf(buf
, dgfmt
[count
], xtime
->wHour
);
2241 } else if (type
== 'm') {
2242 sprintf(buf
, dgfmt
[count
], xtime
->wMinute
);
2243 } else if (type
== 's') {
2244 sprintf(buf
, dgfmt
[count
], xtime
->wSecond
);
2245 } else if (type
== 't') {
2247 sprintf(buf
, "%c", (xtime
->wHour
< 12) ? 'A' : 'P');
2248 } else if (count
== 2) {
2249 /* sprintf(buf, "%s", (xtime->wHour < 12) ? "AM" : "PM"); */
2250 GetLocaleInfo32A(locale
,
2252 ? LOCALE_S1159
: LOCALE_S2359
,
2257 /* we need to check the next char in the format string
2258 again, no matter what happened */
2261 /* add the contents of buf to the output */
2262 buflen
= strlen(buf
);
2263 if (outpos
+ buflen
< datelen
) {
2264 date
[outpos
] = '\0'; /* for strcat to hook onto */
2268 date
[outpos
] = '\0';
2269 strncat(date
, buf
, datelen
- outpos
);
2270 date
[datelen
- 1] = '\0';
2271 SetLastError(ERROR_INSUFFICIENT_BUFFER
);
2272 WARN(ole
, "insufficient buffer\n");
2276 /* reset the variables we used to keep track of this item */
2279 } else if (format
[inpos
] == '\0') {
2280 /* we can't check for this at the loop-head, because
2281 that breaks the printing of the last format-item */
2282 date
[outpos
] = '\0';
2285 /* continuing a code for an item */
2288 } else if (strchr("hHmstyMdg", format
[inpos
])) {
2289 type
= format
[inpos
];
2292 } else if (format
[inpos
] == '\'') {
2296 date
[outpos
++] = format
[inpos
];
2298 /* now deal with a possible buffer overflow */
2299 if (outpos
>= datelen
) {
2300 date
[datelen
- 1] = '\0';
2301 SetLastError(ERROR_INSUFFICIENT_BUFFER
);
2307 SetLastError(ERROR_INSUFFICIENT_BUFFER
);
2310 /* finish it off with a string terminator */
2313 if (outpos
> datelen
-1) outpos
= datelen
-1;
2314 date
[outpos
] = '\0';
2316 TRACE(ole
, "OLE_GetFormatA returns string '%s', len %d\n",
2321 /* OLE_GetFormatW [internal] */
2323 INT32 WINAPI
OLE_GetFormatW(LCID locale
, DWORD flags
,
2326 LPWSTR output
, INT32 outlen
)
2328 INT32 inpos
, outpos
;
2329 int count
, type
, inquote
;
2330 int Overflow
; /* loop check */
2331 int usedate
, usetime
;
2335 WCHAR arg0
[] = {0}, arg1
[] = {'%','d',0};
2336 WCHAR arg2
[] = {'%','0','2','d',0};
2337 WCHAR
*argarr
[] = {arg0
, arg1
, arg2
};
2338 int datevars
, timevars
;
2340 /* make a debug report */
2341 lstrcpynWtoA(abuf
, format
, sizeof(format
));
2342 TRACE(ole
, "args: %8lx, %8lx, time(d=%d,h=%d,m=%d,s=%d), fmt:\'%s\' (at %p), %p with max len %d\n",
2344 xtime
->wDay
, xtime
->wHour
, xtime
->wMinute
, xtime
->wSecond
,
2345 abuf
, format
, output
, outlen
);
2348 /* initialize state variables */
2351 inquote
= Overflow
= 0;
2352 /* this is really just a sanity check */
2353 output
[0] = buf
[0] = 0;
2355 /* for compatibility with official Windows behavior */
2356 usedate
= flags
& DATE_DATEVARSONLY
;
2357 usetime
= flags
& TIME_TIMEVARSONLY
;
2359 /* this loop is the core of the function */
2360 for (inpos
= 0; /* we have several break points */ ; inpos
++) {
2362 if (format
[inpos
] == (WCHAR
) '\'') {
2363 if (format
[inpos
+1] == '\'') {
2365 output
[outpos
++] = '\'';
2370 } else if (format
[inpos
] == 0) {
2371 output
[outpos
++] = 0;
2372 if (outpos
> outlen
) Overflow
= 1;
2373 break; /* normal exit (within a quote) */
2375 output
[outpos
++] = format
[inpos
]; /* copy input */
2376 if (outpos
> outlen
) {
2378 output
[outpos
-1] = 0;
2382 } else if ( (count
&& (format
[inpos
] != type
))
2383 || ( (count
==4 && type
=='y') ||
2384 (count
==4 && type
=='M') ||
2385 (count
==4 && type
=='d') ||
2386 (count
==2 && type
=='g') ||
2387 (count
==2 && type
=='h') ||
2388 (count
==2 && type
=='H') ||
2389 (count
==2 && type
=='m') ||
2390 (count
==2 && type
=='s') ||
2391 (count
==2 && type
=='t') ) ) {
2394 GetLocaleInfo32W(locale
,
2395 LOCALE_SDAYNAME1
+ xtime
->wDayOfWeek
-1,
2396 buf
, sizeof(buf
)/sizeof(WCHAR
) );
2397 } else if (count
== 3) {
2398 GetLocaleInfo32W(locale
,
2399 LOCALE_SABBREVDAYNAME1
+
2400 xtime
->wDayOfWeek
-1,
2401 buf
, sizeof(buf
)/sizeof(WCHAR
) );
2403 wsnprintf32W(buf
, 5, argarr
[count
], xtime
->wDay
);
2405 } else if (type
== 'M') {
2407 GetLocaleInfo32W(locale
, LOCALE_SMONTHNAME1
+
2408 xtime
->wMonth
-1, buf
,
2409 sizeof(buf
)/sizeof(WCHAR
) );
2410 } else if (count
== 3) {
2411 GetLocaleInfo32W(locale
, LOCALE_SABBREVMONTHNAME1
+
2412 xtime
->wMonth
-1, buf
,
2413 sizeof(buf
)/sizeof(WCHAR
) );
2415 wsnprintf32W(buf
, 5, argarr
[count
], xtime
->wMonth
);
2417 } else if (type
== 'y') {
2419 wsnprintf32W(buf
, 6, argarr
[1] /* "%d" */,
2421 } else if (count
== 3) {
2422 lstrcpynAtoW(buf
, "yyy", 5);
2424 wsnprintf32W(buf
, 6, argarr
[count
],
2425 xtime
->wYear
% 100);
2427 } else if (type
== 'g') {
2429 FIXME(ole
, "LOCALE_ICALENDARTYPE unimplemented\n");
2430 lstrcpynAtoW(buf
, "AD", 5);
2432 /* Win API sez we copy it verbatim */
2433 lstrcpynAtoW(buf
, "g", 5);
2435 } else if (type
== 'h') {
2436 /* hours 1:00-12:00 --- is this right? */
2437 wsnprintf32W(buf
, 5, argarr
[count
],
2438 (xtime
->wHour
-1)%12 +1);
2439 } else if (type
== 'H') {
2440 wsnprintf32W(buf
, 5, argarr
[count
],
2442 } else if (type
== 'm') {
2443 wsnprintf32W(buf
, 5, argarr
[count
],
2445 } else if (type
== 's') {
2446 wsnprintf32W(buf
, 5, argarr
[count
],
2448 } else if (type
== 't') {
2449 GetLocaleInfo32W(locale
, (xtime
->wHour
< 12) ?
2450 LOCALE_S1159
: LOCALE_S2359
,
2457 /* no matter what happened, we need to check this next
2458 character the next time we loop through */
2461 /* cat buf onto the output */
2462 outlen
= lstrlen32W(buf
);
2463 if (outpos
+ buflen
< outlen
) {
2464 output
[outpos
] = 0; /* a "hook" for strcat */
2465 lstrcat32W(output
, buf
);
2469 lstrcatn32W(output
, buf
, outlen
- outpos
);
2470 output
[outlen
- 1] = 0;
2472 break; /* Abnormal exit */
2475 /* reset the variables we used this time */
2478 } else if (format
[inpos
] == 0) {
2479 /* we can't check for this at the beginning, because that
2480 would keep us from printing a format spec that ended the
2483 break; /* NORMAL EXIT */
2485 /* how we keep track of the middle of a format spec */
2488 } else if ( (datevars
&& (format
[inpos
]=='d' ||
2489 format
[inpos
]=='M' ||
2490 format
[inpos
]=='y' ||
2491 format
[inpos
]=='g') ) ||
2492 (timevars
&& (format
[inpos
]=='H' ||
2493 format
[inpos
]=='h' ||
2494 format
[inpos
]=='m' ||
2495 format
[inpos
]=='s' ||
2496 format
[inpos
]=='t') ) ) {
2497 type
= format
[inpos
];
2500 } else if (format
[inpos
] == '\'') {
2504 /* unquoted literals */
2505 output
[outpos
++] = format
[inpos
];
2510 SetLastError(ERROR_INSUFFICIENT_BUFFER
);
2511 WARN(ole
, " buffer overflow\n");
2514 /* final string terminator and sanity check */
2516 if (outpos
> outlen
-1) outpos
= outlen
-1;
2517 output
[outpos
] = '0';
2519 lstrcpynWtoA(abuf
, output
, sizeof(abuf
) );
2520 TRACE(ole
, " returning string \'%s\'\n", abuf
);
2522 return (!Overflow
) ? outlen
: 0;
2527 /*****************************************************************
2528 * GetDateFormat32A() [KERNEL32.310] Makes an ASCII string of the date
2530 * This function uses format to format the date, or, if format
2531 * is NULL, uses the default for the locale. format is a string
2532 * of literal fields and characters as follows:
2534 * - d single-digit (no leading zero) day (of month)
2535 * - dd two-digit day (of month)
2536 * - ddd short day-of-week name
2537 * - dddd long day-of-week name
2538 * - M single-digit month
2539 * - MM two-digit month
2540 * - MMM short month name
2541 * - MMMM full month name
2542 * - y two-digit year, no leading 0
2543 * - yy two-digit year
2544 * - yyyy four-digit year
2549 INT32 WINAPI
GetDateFormat32A(LCID locale
,DWORD flags
,
2551 LPCSTR format
, LPSTR date
,INT32 datelen
)
2554 char format_buf
[40];
2557 LPSYSTEMTIME thistime
;
2562 TRACE(ole
,"(0x%04lx,0x%08lx,%p,%s,%p,%d)\n",
2563 locale
,flags
,xtime
,format
,date
,datelen
);
2566 locale
= LOCALE_SYSTEM_DEFAULT
;
2569 if (locale
== LOCALE_SYSTEM_DEFAULT
) {
2570 thislocale
= GetSystemDefaultLCID();
2571 } else if (locale
== LOCALE_USER_DEFAULT
) {
2572 thislocale
= GetUserDefaultLCID();
2574 thislocale
= locale
;
2577 if (xtime
== NULL
) {
2584 if (format
== NULL
) {
2585 GetLocaleInfo32A(thislocale
, ((flags
&DATE_LONGDATE
)
2587 : LOCALE_SSHORTDATE
),
2588 format_buf
, sizeof(format_buf
));
2589 thisformat
= format_buf
;
2591 thisformat
= format
;
2595 ret
= OLE_GetFormatA(thislocale
, flags
, thistime
, thisformat
,
2600 "GetDateFormat32A() returning %d, with data=%s\n",
2605 /* ****************************************************************
2606 * GetDateFormat32W() [KERNEL32.311] Makes a Unicode string of the date
2608 * Acts the same as GetDateFormat32A(), except that it's Unicode.
2609 * Accepts & returns sizes as counts of Unicode characters.
2612 INT32 WINAPI
GetDateFormat32W(LCID locale
,DWORD flags
,
2615 LPWSTR date
, INT32 datelen
)
2617 short datearr
[] = {'1','9','9','4','-','1','-','1',0};
2619 FIXME(ole
, "STUB (should call OLE_GetFormatW)\n");
2620 lstrcpyn32W(date
, datearr
, datelen
);
2621 return ( datelen
< 9) ? datelen
: 9;
2627 /**************************************************************************
2628 * GetNumberFormat32A (KERNEL32.355)
2630 INT32 WINAPI
GetNumberFormat32A(LCID locale
, DWORD dwflags
,
2631 LPCSTR lpvalue
, char *lpFormat
,
2632 LPSTR lpNumberStr
, int cchNumber
)
2633 /* NOTE: type of lpFormat should be CONST NUMBERFORMAT */
2638 FIXME(file
,"%s: stub, no reformating done\n",lpvalue
);
2640 n
= strlen(lpvalue
);
2642 strncpy(lpNumberStr
,lpvalue
,cchNumber
);
2643 if (cchNumber
<= n
) {
2644 lpNumberStr
[cchNumber
-1] = 0;
2653 /*****************************************************************
2655 * GetTimeFormat32A() [KERNEL32.422] Makes an ASCII string of the time
2657 * Formats date according to format, or locale default if format is
2658 * NULL. The format consists of literal characters and fields as follows:
2660 * h hours with no leading zero (12-hour)
2661 * hh hours with full two digits
2662 * H hours with no leading zero (24-hour)
2663 * HH hours with full two digits
2664 * m minutes with no leading zero
2665 * mm minutes with full two digits
2666 * s seconds with no leading zero
2667 * ss seconds with full two digits
2668 * t time marker (A or P)
2669 * tt time marker (AM, PM)
2674 GetTimeFormat32A(LCID locale
, /* in */
2675 DWORD flags
, /* in */
2676 LPSYSTEMTIME xtime
, /* in */
2677 LPCSTR format
, /* in */
2678 LPSTR timestr
, /* out */
2679 INT32 timelen
/* in */)
2684 TRACE(ole
,"GetTimeFormat(0x%04lx,0x%08lx,%p,%s,%p,%d)\n",
2685 locale
,flags
,xtime
,format
,timestr
,timelen
);
2688 realformat
= format
;
2689 } else if (locale
) {
2690 GetLocaleInfo32A(locale
, LOCALE_STIMEFORMAT
,
2691 fmt_buf
, sizeof(fmt_buf
));
2692 realformat
= fmt_buf
;
2694 WARN(ole
, "Caller gave no locale and no format\n");
2695 realformat
= "hh:mm:ss";
2698 locale
= GetSystemDefaultLCID();
2700 return OLE_GetFormatA(locale
, flags
, xtime
, realformat
, timestr
, timelen
);
2704 /* ****************************************************************
2705 * GetTimeFormat32W() [KERNEL32.423] Makes a Unicode string of the time
2712 GetTimeFormat32W(LCID locale
,DWORD flags
,
2715 LPWSTR timestr
,INT32 timelen
)
2721 LPSYSTEMTIME realtime
;
2722 WCHAR
* fmt_buf
= NULL
;
2723 int fmt_buf_size
= 0; /* units of WCHARs */
2726 lstrcpynWtoA(debugbuf
, format
, (sizeof(buf
))/2);
2727 TRACE(ole
, "GetTimeFormatW len %d flags 0x%lX format >%s<\n",
2728 timelen
, flags
, debugbuf
);
2730 /* Enforce the Windows behavior */
2731 flags
|= ~LOCALE_TIMEDATEBOTH
;
2732 flags
|= TIME_TIMEVARSONLY
;
2734 /* take care of the format or locale not being given */
2736 realformat
= format
;
2737 } else if (locale
) {
2738 /* allocate memory */
2739 fmt_buf
= malloc((fmt_buf_size
+=7) * sizeof(WCHAR
));
2741 SetLastError(ERROR_INSUFFICIENT_BUFFER
);
2742 WARN(ole
, "could not allocate %d chars of memory\n", fmt_buf_size
);
2745 while(!GetLocaleInfo32W(locale
, LOCALE_STIMEFORMAT
,
2746 fmt_buf
, fmt_buf_size
)) {
2747 fmt_buf
= realloc(fmt_buf
,
2748 (fmt_buf_size
+= 10) * sizeof(WCHAR
));
2750 SetLastError(ERROR_OUTOFMEMORY
);
2751 WARN(ole
, "could not allocate %d chars of memory\n", fmt_buf_size
);
2755 realformat
= fmt_buf
;
2757 FIXME(ole
, "caller gave no locale, no format; what should we do?\n");
2758 SetLastError(ERROR_BAD_FORMAT
);
2761 locale
= GetSystemDefaultLCID();
2767 GetSystemTime(realtime
);
2771 retval
= OLE_GetFormatW(locale
, flags
, realtime
, realformat
, timestr
, timelen
);
2772 if (fmt_buf
) free(fmt_buf
);