Release 961222
[wine/multimedia.git] / misc / ole2nls.c
bloba6b1e8baec8034da325275fa0e14f50fe30fa67f
1 /*
2 * OLE2NLS library
4 * Copyright 1995 Martin von Loewis
5 */
7 #include <string.h>
8 #include <malloc.h>
9 #include "windows.h"
10 #include "heap.h"
11 #include "ole.h"
12 #include "options.h"
13 #include "winnls.h"
14 #include "stddebug.h"
15 #include "debug.h"
17 /* Locale name to id map. used by EnumSystemLocales, GetLocalInfoA
18 * MUST contain all #defines from winnls.h
19 * last entry has NULL name, 0 id.
20 */
21 #define LOCALE_ENTRY(x) {#x,LOCALE_##x}
22 static struct tagLOCALE_NAME2ID {
23 char *name;
24 DWORD id;
25 } locale_name2id[]= {
26 LOCALE_ENTRY(ILANGUAGE),
27 LOCALE_ENTRY(SLANGUAGE),
28 LOCALE_ENTRY(SENGLANGUAGE),
29 LOCALE_ENTRY(SABBREVLANGNAME),
30 LOCALE_ENTRY(SNATIVELANGNAME),
31 LOCALE_ENTRY(ICOUNTRY),
32 LOCALE_ENTRY(SCOUNTRY),
33 LOCALE_ENTRY(SENGCOUNTRY),
34 LOCALE_ENTRY(SABBREVCTRYNAME),
35 LOCALE_ENTRY(SNATIVECTRYNAME),
36 LOCALE_ENTRY(IDEFAULTLANGUAGE),
37 LOCALE_ENTRY(IDEFAULTCOUNTRY),
38 LOCALE_ENTRY(IDEFAULTCODEPAGE),
39 LOCALE_ENTRY(IDEFAULTANSICODEPAGE),
40 LOCALE_ENTRY(SLIST),
41 LOCALE_ENTRY(IMEASURE),
42 LOCALE_ENTRY(SDECIMAL),
43 LOCALE_ENTRY(STHOUSAND),
44 LOCALE_ENTRY(SGROUPING),
45 LOCALE_ENTRY(IDIGITS),
46 LOCALE_ENTRY(ILZERO),
47 LOCALE_ENTRY(INEGNUMBER),
48 LOCALE_ENTRY(SNATIVEDIGITS),
49 LOCALE_ENTRY(SCURRENCY),
50 LOCALE_ENTRY(SINTLSYMBOL),
51 LOCALE_ENTRY(SMONDECIMALSEP),
52 LOCALE_ENTRY(SMONTHOUSANDSEP),
53 LOCALE_ENTRY(SMONGROUPING),
54 LOCALE_ENTRY(ICURRDIGITS),
55 LOCALE_ENTRY(IINTLCURRDIGITS),
56 LOCALE_ENTRY(ICURRENCY),
57 LOCALE_ENTRY(INEGCURR),
58 LOCALE_ENTRY(SDATE),
59 LOCALE_ENTRY(STIME),
60 LOCALE_ENTRY(SSHORTDATE),
61 LOCALE_ENTRY(SLONGDATE),
62 LOCALE_ENTRY(STIMEFORMAT),
63 LOCALE_ENTRY(IDATE),
64 LOCALE_ENTRY(ILDATE),
65 LOCALE_ENTRY(ITIME),
66 LOCALE_ENTRY(ITIMEMARKPOSN),
67 LOCALE_ENTRY(ICENTURY),
68 LOCALE_ENTRY(ITLZERO),
69 LOCALE_ENTRY(IDAYLZERO),
70 LOCALE_ENTRY(IMONLZERO),
71 LOCALE_ENTRY(S1159),
72 LOCALE_ENTRY(S2359),
73 LOCALE_ENTRY(ICALENDARTYPE),
74 LOCALE_ENTRY(IOPTIONALCALENDAR),
75 LOCALE_ENTRY(IFIRSTDAYOFWEEK),
76 LOCALE_ENTRY(IFIRSTWEEKOFYEAR),
77 LOCALE_ENTRY(SDAYNAME1),
78 LOCALE_ENTRY(SDAYNAME2),
79 LOCALE_ENTRY(SDAYNAME3),
80 LOCALE_ENTRY(SDAYNAME4),
81 LOCALE_ENTRY(SDAYNAME5),
82 LOCALE_ENTRY(SDAYNAME6),
83 LOCALE_ENTRY(SDAYNAME7),
84 LOCALE_ENTRY(SABBREVDAYNAME1),
85 LOCALE_ENTRY(SABBREVDAYNAME2),
86 LOCALE_ENTRY(SABBREVDAYNAME3),
87 LOCALE_ENTRY(SABBREVDAYNAME4),
88 LOCALE_ENTRY(SABBREVDAYNAME5),
89 LOCALE_ENTRY(SABBREVDAYNAME6),
90 LOCALE_ENTRY(SABBREVDAYNAME7),
91 LOCALE_ENTRY(SMONTHNAME1),
92 LOCALE_ENTRY(SMONTHNAME2),
93 LOCALE_ENTRY(SMONTHNAME3),
94 LOCALE_ENTRY(SMONTHNAME4),
95 LOCALE_ENTRY(SMONTHNAME5),
96 LOCALE_ENTRY(SMONTHNAME6),
97 LOCALE_ENTRY(SMONTHNAME7),
98 LOCALE_ENTRY(SMONTHNAME8),
99 LOCALE_ENTRY(SMONTHNAME9),
100 LOCALE_ENTRY(SMONTHNAME10),
101 LOCALE_ENTRY(SMONTHNAME11),
102 LOCALE_ENTRY(SMONTHNAME12),
103 LOCALE_ENTRY(SMONTHNAME13),
104 LOCALE_ENTRY(SABBREVMONTHNAME1),
105 LOCALE_ENTRY(SABBREVMONTHNAME2),
106 LOCALE_ENTRY(SABBREVMONTHNAME3),
107 LOCALE_ENTRY(SABBREVMONTHNAME4),
108 LOCALE_ENTRY(SABBREVMONTHNAME5),
109 LOCALE_ENTRY(SABBREVMONTHNAME6),
110 LOCALE_ENTRY(SABBREVMONTHNAME7),
111 LOCALE_ENTRY(SABBREVMONTHNAME8),
112 LOCALE_ENTRY(SABBREVMONTHNAME9),
113 LOCALE_ENTRY(SABBREVMONTHNAME10),
114 LOCALE_ENTRY(SABBREVMONTHNAME11),
115 LOCALE_ENTRY(SABBREVMONTHNAME12),
116 LOCALE_ENTRY(SABBREVMONTHNAME13),
117 LOCALE_ENTRY(SPOSITIVESIGN),
118 LOCALE_ENTRY(SNEGATIVESIGN),
119 LOCALE_ENTRY(IPOSSIGNPOSN),
120 LOCALE_ENTRY(INEGSIGNPOSN),
121 LOCALE_ENTRY(IPOSSYMPRECEDES),
122 LOCALE_ENTRY(IPOSSEPBYSPACE),
123 LOCALE_ENTRY(INEGSYMPRECEDES),
124 LOCALE_ENTRY(INEGSEPBYSPACE),
125 {NULL,0},
128 /***********************************************************************
129 * GetUserDefaultLCID (OLE2NLS.1)
131 DWORD GetUserDefaultLCID()
133 /* Default sorting, neutral sublanguage */
134 switch(Options.language)
136 /* case LANG_Bu: return 0x02; */ /* Bulgarian */
137 /* case LANG_Ch: return 0x04; */ /* Chinese */
138 case LANG_Cz: return 0x05; /* Czech */
139 case LANG_Da: return 0x06; /* Danish */
140 case LANG_De: return 0x07; /* German */
141 /* case LANG_Gr: return 0x08; */ /* Greek */
142 case LANG_En: return 0x09; /* English */
143 case LANG_Es: return 0x0a; /* Spanish */
144 case LANG_Fi: return 0x0b; /* Finnish */
145 case LANG_Fr: return 0x0c; /* French */
146 /* case LANG_Hu: return 0x0e; */ /* Hungarian */
147 /* case LANG_Ic: return 0x0f; */ /* Icelandic */
148 case LANG_It: return 0x10; /* Italian */
149 /* case LANG_Jp: return 0x11; */ /* Japanese */
150 case LANG_Ko: return 0x12; /* Korean */
151 /* case LANG_Du: return 0x13; */ /* Dutch */
152 case LANG_No: return 0x14; /* Norwegian */
153 /* case LANG_Pl: return 0x15; */ /* Polish */
154 /* case LANG_Po: return 0x16; */ /* Portuguese */
155 /* case LANG_Ro: return 0x18; */ /* Romanian */
156 /* case LANG_Ru: return 0x19; */ /* Russian */
157 /* case LANG_Cr: return 0x1a; */ /* Croatian */
158 /* case LANG_Sl: return 0x1b; */ /* Slovak */
159 /* case LANG_Sw: return 0x1d; */ /* Swedish */
160 /* case LANG_Tu: return 0x1f; */ /* Turkish */
161 /* case LANG_Sv: return 0x24; */ /* Slovenian */
162 case LANG_Eo: return 0x25; /* Esperanto (not official) */
164 default:
165 return 0x00; /* Neutral language */
169 /***********************************************************************
170 * GetSystemDefaultLCID (OLE2NLS.2)
172 DWORD GetSystemDefaultLCID()
174 return GetUserDefaultLCID();
177 /***********************************************************************
178 * GetUserDefaultLangID (OLE2NLS.3)
180 WORD GetUserDefaultLangID()
182 return (WORD)GetUserDefaultLCID();
185 /***********************************************************************
186 * GetSystemDefaultLangID (OLE2NLS.4)
188 WORD GetSystemDefaultLangID()
190 return GetUserDefaultLangID();
193 /***********************************************************************
194 * GetLocaleInfoA (OLE2NLS.5)
195 * Is the last parameter really WORD for Win16?
197 int GetLocaleInfoA(DWORD lcid,DWORD LCType,LPSTR buf,WORD len)
199 char *retString;
200 int found,i;
202 dprintf_ole(stddeb,"GetLocaleInfoA(%8lX,%8lX,%p,%4X)\n",
203 lcid,LCType,buf,len);
204 /* As an option, we could obtain the value from win.ini.
205 This would not match the Wine compile-time option.
206 Also, not all identifiers are available from win.ini */
207 retString=0;
208 /* If we are through all of this, retLen should not be zero anymore.
209 If it is, the value is not supported */
210 i=0;
211 while (locale_name2id[i].name!=NULL) {
212 if (LCType == locale_name2id[i].id) {
213 retString = locale_name2id[i].name;
214 break;
216 i++;
218 if (!retString) {
219 fprintf(stderr,"Unkown LC type %lX\n",LCType);
220 return 0;
223 #define LOCVAL(type,value) case type:retString=value;break;
225 /* Now, the language specific definitions. They don't have to be
226 complete */
227 found=1;
228 switch(Options.language)
230 case LANG_De:
231 switch (LCType) {
232 /* This definitions apply to Germany only. Users in Austria
233 or Switzerland might want to modify them */
234 LOCVAL(LOCALE_ILANGUAGE,"9")
235 LOCVAL(LOCALE_SLANGUAGE,"Deutsch")
236 LOCVAL(LOCALE_SENGLANGUAGE,"German")
237 LOCVAL(LOCALE_SABBREVLANGNAME,"deu")
238 LOCVAL(LOCALE_SNATIVELANGNAME,"Deutsch")
239 LOCVAL(LOCALE_ICOUNTRY,"49")
240 LOCVAL(LOCALE_SCOUNTRY,"Deutschland")
241 LOCVAL(LOCALE_SENGCOUNTRY,"Deutschland")
242 LOCVAL(LOCALE_SABBREVCTRYNAME,"De")
243 LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland")
244 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
245 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49")
246 /* Dunno
247 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
248 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
250 LOCVAL(LOCALE_SLIST,";")
251 LOCVAL(LOCALE_IMEASURE,"0")
252 LOCVAL(LOCALE_SDECIMAL,",")
253 LOCVAL(LOCALE_STHOUSAND,".")
255 LOCVAL(LOCALE_SGROUPING)
257 LOCVAL(LOCALE_IDIGITS,"2")
258 LOCVAL(LOCALE_ILZERO,"1")
260 LOCVAL(LOCALE_INEGNUMBER)
261 Is this "0123456789" ??
262 LOCVAL(LOCALE_SNATIVEDIGITS)
264 LOCVAL(LOCALE_SCURRENCY,"DM")
266 LOCVAL(LOCALE_SINTLSYMBOL)
267 LOCVAL(LOCALE_SMONDECIMALSEP)
268 LOCVAL(LOCALE_SMONTHOUSANDSEP)
269 LOCVAL(LOCALE_SMONGROUPING)
271 LOCVAL(LOCALE_ICURRDIGITS,"2")
273 LOCVAL(LOCALE_IINTLCURRDIGITS)
275 LOCVAL(LOCALE_ICURRENCY,"3")
276 LOCVAL(LOCALE_INEGCURR,"8")
277 LOCVAL(LOCALE_SDATE,".")
278 LOCVAL(LOCALE_STIME,":")
279 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
280 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
282 LOCVAL(LOCALE_STIMEFORMAT)
284 LOCVAL(LOCALE_IDATE,"1")
286 LOCVAL(LOCALE_ILDATE)
288 LOCVAL(LOCALE_ITIME,"1")
290 LOCVAL(LOCALE_ITIMEMARKPOSN)
291 LOCVAL(LOCALE_ICENTURY)
293 LOCVAL(LOCALE_ITLZERO,"1")
295 LOCVAL(LOCALE_IDAYLZERO)
296 LOCVAL(LOCALE_IMONLZERO)
297 LOCVAL(LOCALE_S1159)
298 LOCVAL(LOCALE_S2359)
299 LOCVAL(LOCALE_ICALENDARTYPE)
300 LOCVAL(LOCALE_IOPTIONALCALENDAR)
301 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
302 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
304 LOCVAL(LOCALE_SDAYNAME1,"Montag")
305 LOCVAL(LOCALE_SDAYNAME2,"Dienstag")
306 LOCVAL(LOCALE_SDAYNAME3,"Mittwoch")
307 LOCVAL(LOCALE_SDAYNAME4,"Donnerstag")
308 LOCVAL(LOCALE_SDAYNAME5,"Freitag")
309 LOCVAL(LOCALE_SDAYNAME6,"Sonnabend")
310 LOCVAL(LOCALE_SDAYNAME7,"Sonntag")
311 LOCVAL(LOCALE_SABBREVDAYNAME1,"Mo")
312 LOCVAL(LOCALE_SABBREVDAYNAME2,"Di")
313 LOCVAL(LOCALE_SABBREVDAYNAME3,"Mi")
314 LOCVAL(LOCALE_SABBREVDAYNAME4,"Do")
315 LOCVAL(LOCALE_SABBREVDAYNAME5,"Fr")
316 LOCVAL(LOCALE_SABBREVDAYNAME6,"Sa")
317 LOCVAL(LOCALE_SABBREVDAYNAME7,"So")
318 LOCVAL(LOCALE_SMONTHNAME1,"Januar")
319 LOCVAL(LOCALE_SMONTHNAME2,"Februar")
320 LOCVAL(LOCALE_SMONTHNAME3,"März")
321 LOCVAL(LOCALE_SMONTHNAME4,"April")
322 LOCVAL(LOCALE_SMONTHNAME5,"Mai")
323 LOCVAL(LOCALE_SMONTHNAME6,"Juni")
324 LOCVAL(LOCALE_SMONTHNAME7,"Juli")
325 LOCVAL(LOCALE_SMONTHNAME8,"August")
326 LOCVAL(LOCALE_SMONTHNAME9,"September")
327 LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
328 LOCVAL(LOCALE_SMONTHNAME11,"November")
329 LOCVAL(LOCALE_SMONTHNAME12,"Dezember")
330 LOCVAL(LOCALE_SMONTHNAME13,"")
331 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
332 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
333 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mär")
334 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
335 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mai")
336 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jun")
337 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Jul")
338 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
339 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sep")
340 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
341 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
342 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dez")
343 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
345 LOCVAL(LOCALE_SPOSITIVESIGN)
346 LOCVAL(LOCALE_SNEGATIVESIGN)
347 LOCVAL(LOCALE_IPOSSIGNPOSN)
348 LOCVAL(LOCALE_INEGSIGNPOSN)
349 LOCVAL(LOCALE_IPOSSYMPRECEDES)
350 LOCVAL(LOCALE_IPOSSEPBYSPACE)
351 LOCVAL(LOCALE_INEGSYMPRECEDES)
352 LOCVAL(LOCALE_INEGSEPBYSPACE)
354 default: found=0;break;
356 break; /* LANG(De) */
358 case LANG_Da:
359 switch (LCType) {
360 /* LOCVAL(LOCALE_ILANGUAGE,"9") */
361 LOCVAL(LOCALE_SLANGUAGE,"Dansk")
362 LOCVAL(LOCALE_SENGLANGUAGE,"Danish")
363 LOCVAL(LOCALE_SABBREVLANGNAME,"dan")
364 LOCVAL(LOCALE_SNATIVELANGNAME,"Dansk")
365 LOCVAL(LOCALE_ICOUNTRY,"45")
366 LOCVAL(LOCALE_SCOUNTRY,"Danmark")
367 LOCVAL(LOCALE_SENGCOUNTRY,"Denmark")
368 LOCVAL(LOCALE_SABBREVCTRYNAME,"Da")
369 LOCVAL(LOCALE_SNATIVECTRYNAME,"Danmark")
370 /* LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9") */
371 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"45")
372 /* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
373 /* LOCVAL(LOCALE_IDEFAULTANSICODEPAGE) */
374 LOCVAL(LOCALE_SLIST,";")
375 LOCVAL(LOCALE_IMEASURE,"0")
376 LOCVAL(LOCALE_SDECIMAL,",")
377 LOCVAL(LOCALE_STHOUSAND,".")
378 /* LOCVAL(LOCALE_SGROUPING) */
379 LOCVAL(LOCALE_IDIGITS,"2")
380 LOCVAL(LOCALE_ILZERO,"1")
381 /* LOCVAL(LOCALE_INEGNUMBER) */
382 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
383 LOCVAL(LOCALE_SCURRENCY,"kr")
384 /* LOCVAL(LOCALE_SINTLSYMBOL) */
385 LOCVAL(LOCALE_SMONDECIMALSEP,",")
386 LOCVAL(LOCALE_SMONTHOUSANDSEP,".")
387 /* LOCVAL(LOCALE_SMONGROUPING) */
388 LOCVAL(LOCALE_ICURRDIGITS,"2")
389 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
390 LOCVAL(LOCALE_ICURRENCY,"3")
391 LOCVAL(LOCALE_INEGCURR,"8")
392 LOCVAL(LOCALE_SDATE,".")
393 LOCVAL(LOCALE_STIME,":")
394 LOCVAL(LOCALE_SSHORTDATE,"dd/MM-yyyy")
395 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
396 /* LOCVAL(LOCALE_STIMEFORMAT) */
397 LOCVAL(LOCALE_IDATE,"1")
398 /* LOCVAL(LOCALE_ILDATE) */
399 LOCVAL(LOCALE_ITIME,"1")
400 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
401 /* LOCVAL(LOCALE_ICENTURY) */
402 LOCVAL(LOCALE_ITLZERO,"1")
403 /* LOCVAL(LOCALE_IDAYLZERO) */
404 /* LOCVAL(LOCALE_IMONLZERO) */
405 /* LOCVAL(LOCALE_S1159) */
406 /* LOCVAL(LOCALE_S2359) */
407 /* LOCVAL(LOCALE_ICALENDARTYPE) */
408 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
409 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
410 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
411 LOCVAL(LOCALE_SDAYNAME1,"Mandag")
412 LOCVAL(LOCALE_SDAYNAME2,"Tirsdag")
413 LOCVAL(LOCALE_SDAYNAME3,"Onsdag")
414 LOCVAL(LOCALE_SDAYNAME4,"Torsdag")
415 LOCVAL(LOCALE_SDAYNAME5,"Fredag")
416 LOCVAL(LOCALE_SDAYNAME6,"Lørdag")
417 LOCVAL(LOCALE_SDAYNAME7,"Søndag")
418 LOCVAL(LOCALE_SABBREVDAYNAME1,"Ma")
419 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ti")
420 LOCVAL(LOCALE_SABBREVDAYNAME3,"On")
421 LOCVAL(LOCALE_SABBREVDAYNAME4,"To")
422 LOCVAL(LOCALE_SABBREVDAYNAME5,"Fr")
423 LOCVAL(LOCALE_SABBREVDAYNAME6,"Lø")
424 LOCVAL(LOCALE_SABBREVDAYNAME7,"Sø")
425 LOCVAL(LOCALE_SMONTHNAME1,"Januar")
426 LOCVAL(LOCALE_SMONTHNAME2,"Februar")
427 LOCVAL(LOCALE_SMONTHNAME3,"Marts")
428 LOCVAL(LOCALE_SMONTHNAME4,"April")
429 LOCVAL(LOCALE_SMONTHNAME5,"Maj")
430 LOCVAL(LOCALE_SMONTHNAME6,"Juni")
431 LOCVAL(LOCALE_SMONTHNAME7,"Juli")
432 LOCVAL(LOCALE_SMONTHNAME8,"August")
433 LOCVAL(LOCALE_SMONTHNAME9,"September")
434 LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
435 LOCVAL(LOCALE_SMONTHNAME11,"November")
436 LOCVAL(LOCALE_SMONTHNAME12,"December")
437 LOCVAL(LOCALE_SMONTHNAME13,"")
438 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
439 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
440 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mar")
441 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
442 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Maj")
443 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jun")
444 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Jul")
445 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
446 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sep")
447 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
448 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
449 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dec")
450 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
451 /* LOCVAL(LOCALE_SPOSITIVESIGN) */
452 /* LOCVAL(LOCALE_SNEGATIVESIGN) */
453 /* LOCVAL(LOCALE_IPOSSIGNPOSN) */
454 /* LOCVAL(LOCALE_INEGSIGNPOSN) */
455 /* LOCVAL(LOCALE_IPOSSYMPRECEDES) */
456 /* LOCVAL(LOCALE_IPOSSEPBYSPACE) */
457 /* LOCVAL(LOCALE_INEGSYMPRECEDES) */
458 /* LOCVAL(LOCALE_INEGSEPBYSPACE) */
459 default: found=0;break;
461 break; /* LANG(Da) */
463 case LANG_En:
464 switch (LCType) {
465 /* This definitions apply to Germany only. Users in Austria
466 or Switzerland might want to modify them */
467 LOCVAL(LOCALE_ILANGUAGE,"9")
468 LOCVAL(LOCALE_SLANGUAGE,"English")
469 LOCVAL(LOCALE_SENGLANGUAGE,"English")
470 LOCVAL(LOCALE_SABBREVLANGNAME,"enu")
471 LOCVAL(LOCALE_SNATIVELANGNAME,"English")
472 LOCVAL(LOCALE_ICOUNTRY,"11")
473 LOCVAL(LOCALE_SCOUNTRY,"Deutschland")
474 LOCVAL(LOCALE_SENGCOUNTRY,"Deutschland")
475 LOCVAL(LOCALE_SABBREVCTRYNAME,"De")
476 LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland")
477 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
478 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49")
479 /* Dunno
480 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
481 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
483 LOCVAL(LOCALE_SLIST,";")
484 LOCVAL(LOCALE_IMEASURE,"0")
485 LOCVAL(LOCALE_SDECIMAL,",")
486 LOCVAL(LOCALE_STHOUSAND,".")
488 LOCVAL(LOCALE_SGROUPING)
490 LOCVAL(LOCALE_IDIGITS,"2")
491 LOCVAL(LOCALE_ILZERO,"1")
493 LOCVAL(LOCALE_INEGNUMBER)
494 Is this "0123456789" ??
495 LOCVAL(LOCALE_SNATIVEDIGITS)
497 LOCVAL(LOCALE_SCURRENCY,"DM")
499 LOCVAL(LOCALE_SINTLSYMBOL)
500 LOCVAL(LOCALE_SMONDECIMALSEP)
501 LOCVAL(LOCALE_SMONTHOUSANDSEP)
502 LOCVAL(LOCALE_SMONGROUPING)
504 LOCVAL(LOCALE_ICURRDIGITS,"2")
506 LOCVAL(LOCALE_IINTLCURRDIGITS)
508 LOCVAL(LOCALE_ICURRENCY,"3")
509 LOCVAL(LOCALE_INEGCURR,"8")
510 LOCVAL(LOCALE_SDATE,".")
511 LOCVAL(LOCALE_STIME,":")
512 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
513 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
515 LOCVAL(LOCALE_STIMEFORMAT)
517 LOCVAL(LOCALE_IDATE,"1")
519 LOCVAL(LOCALE_ILDATE)
521 LOCVAL(LOCALE_ITIME,"1")
523 LOCVAL(LOCALE_ITIMEMARKPOSN)
524 LOCVAL(LOCALE_ICENTURY)
526 LOCVAL(LOCALE_ITLZERO,"1")
528 LOCVAL(LOCALE_IDAYLZERO)
529 LOCVAL(LOCALE_IMONLZERO)
530 LOCVAL(LOCALE_S1159)
531 LOCVAL(LOCALE_S2359)
532 LOCVAL(LOCALE_ICALENDARTYPE)
533 LOCVAL(LOCALE_IOPTIONALCALENDAR)
534 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
535 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
537 LOCVAL(LOCALE_SDAYNAME1,"Montag")
538 LOCVAL(LOCALE_SDAYNAME2,"Dienstag")
539 LOCVAL(LOCALE_SDAYNAME3,"Mittwoch")
540 LOCVAL(LOCALE_SDAYNAME4,"Donnerstag")
541 LOCVAL(LOCALE_SDAYNAME5,"Freitag")
542 LOCVAL(LOCALE_SDAYNAME6,"Sonnabend")
543 LOCVAL(LOCALE_SDAYNAME7,"Sonntag")
544 LOCVAL(LOCALE_SABBREVDAYNAME1,"Mo")
545 LOCVAL(LOCALE_SABBREVDAYNAME2,"Di")
546 LOCVAL(LOCALE_SABBREVDAYNAME3,"Mi")
547 LOCVAL(LOCALE_SABBREVDAYNAME4,"Do")
548 LOCVAL(LOCALE_SABBREVDAYNAME5,"Fr")
549 LOCVAL(LOCALE_SABBREVDAYNAME6,"Sa")
550 LOCVAL(LOCALE_SABBREVDAYNAME7,"So")
551 LOCVAL(LOCALE_SMONTHNAME1,"Januar")
552 LOCVAL(LOCALE_SMONTHNAME2,"Februar")
553 LOCVAL(LOCALE_SMONTHNAME3,"März")
554 LOCVAL(LOCALE_SMONTHNAME4,"April")
555 LOCVAL(LOCALE_SMONTHNAME5,"Mai")
556 LOCVAL(LOCALE_SMONTHNAME6,"Juni")
557 LOCVAL(LOCALE_SMONTHNAME7,"Juli")
558 LOCVAL(LOCALE_SMONTHNAME8,"August")
559 LOCVAL(LOCALE_SMONTHNAME9,"September")
560 LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
561 LOCVAL(LOCALE_SMONTHNAME11,"November")
562 LOCVAL(LOCALE_SMONTHNAME12,"Dezember")
563 LOCVAL(LOCALE_SMONTHNAME13,"")
564 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
565 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
566 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mär")
567 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
568 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mai")
569 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jun")
570 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Jul")
571 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
572 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sep")
573 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
574 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
575 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dez")
576 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
578 LOCVAL(LOCALE_SPOSITIVESIGN)
579 LOCVAL(LOCALE_SNEGATIVESIGN)
580 LOCVAL(LOCALE_IPOSSIGNPOSN)
581 LOCVAL(LOCALE_INEGSIGNPOSN)
582 LOCVAL(LOCALE_IPOSSYMPRECEDES)
583 LOCVAL(LOCALE_IPOSSEPBYSPACE)
584 LOCVAL(LOCALE_INEGSYMPRECEDES)
585 LOCVAL(LOCALE_INEGSEPBYSPACE)
587 default: found=0;break;
589 break; /* LANG(En) */
591 case LANG_Eo:
592 switch (LCType) {
593 /* LOCVAL(LOCALE_ILANGUAGE,"9") ISO numerical ID for language TODO */
594 LOCVAL(LOCALE_SLANGUAGE,"Esperanto")
595 LOCVAL(LOCALE_SENGLANGUAGE,"Esperanto")
596 /* LOCVAL(LOCALE_SABBREVLANGNAME,"deu") */
597 LOCVAL(LOCALE_SNATIVELANGNAME,"Esperanto")
598 /* LOCVAL(LOCALE_ICOUNTRY,"49") not official in any one country */
599 /* LOCVAL(LOCALE_SCOUNTRY,"Deutschland") */
600 /* LOCVAL(LOCALE_SENGCOUNTRY,"Germany") */
601 /* LOCVAL(LOCALE_SABBREVCTRYNAME,"De") */
602 /* LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland") */
603 /* LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9") ISO ID of lang TODO */
604 /* LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49") */
605 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"3") /* is this right? TODO */
606 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"3") /* is this right? TODO */
607 LOCVAL(LOCALE_SLIST,";")
608 LOCVAL(LOCALE_IMEASURE,"0")
609 LOCVAL(LOCALE_SDECIMAL,",")
610 LOCVAL(LOCALE_STHOUSAND,".")
611 /* LOCVAL(LOCALE_SGROUPING) */
612 LOCVAL(LOCALE_IDIGITS,"2")
613 LOCVAL(LOCALE_ILZERO,"1")
614 /* LOCVAL(LOCALE_INEGNUMBER) */
615 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
616 LOCVAL(LOCALE_SCURRENCY,"NLG") /* accounting currency of UEA */
617 /* LOCVAL(LOCALE_SINTLSYMBOL) */
618 /* LOCVAL(LOCALE_SMONDECIMALSEP) */
619 /* LOCVAL(LOCALE_SMONTHOUSANDSEP) */
620 /* LOCVAL(LOCALE_SMONGROUPING) */
621 /* LOCVAL(LOCALE_ICURRDIGITS,"2") */
622 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
623 LOCVAL(LOCALE_ICURRENCY,"3")
624 LOCVAL(LOCALE_INEGCURR,"8")
625 LOCVAL(LOCALE_SDATE,".")
626 LOCVAL(LOCALE_STIME,":")
627 LOCVAL(LOCALE_SSHORTDATE,"yyyy.mm.dd")
628 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
629 /* LOCVAL(LOCALE_STIMEFORMAT) */
630 LOCVAL(LOCALE_IDATE,"1")
631 /* LOCVAL(LOCALE_ILDATE) */
632 LOCVAL(LOCALE_ITIME,"1")
633 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
634 /* LOCVAL(LOCALE_ICENTURY) */
635 LOCVAL(LOCALE_ITLZERO,"1")
636 /* LOCVAL(LOCALE_IDAYLZERO) */
637 /* LOCVAL(LOCALE_IMONLZERO) */
638 /* LOCVAL(LOCALE_S1159) */
639 /* LOCVAL(LOCALE_S2359) */
640 /* LOCVAL(LOCALE_ICALENDARTYPE) */
641 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
642 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
643 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
644 LOCVAL(LOCALE_SDAYNAME1,"lundo")
645 LOCVAL(LOCALE_SDAYNAME2,"mardo")
646 LOCVAL(LOCALE_SDAYNAME3,"merkredo")
647 LOCVAL(LOCALE_SDAYNAME4,"¼aýdo")
648 LOCVAL(LOCALE_SDAYNAME5,"vendredo")
649 LOCVAL(LOCALE_SDAYNAME6,"sabato")
650 LOCVAL(LOCALE_SDAYNAME7,"dimanæo")
651 LOCVAL(LOCALE_SABBREVDAYNAME1,"lu")
652 LOCVAL(LOCALE_SABBREVDAYNAME2,"ma")
653 LOCVAL(LOCALE_SABBREVDAYNAME3,"me")
654 LOCVAL(LOCALE_SABBREVDAYNAME4,"¼a")
655 LOCVAL(LOCALE_SABBREVDAYNAME5,"ve")
656 LOCVAL(LOCALE_SABBREVDAYNAME6,"sa")
657 LOCVAL(LOCALE_SABBREVDAYNAME7,"di")
658 LOCVAL(LOCALE_SMONTHNAME1,"januaro")
659 LOCVAL(LOCALE_SMONTHNAME2,"februaro")
660 LOCVAL(LOCALE_SMONTHNAME3,"marto")
661 LOCVAL(LOCALE_SMONTHNAME4,"aprilo")
662 LOCVAL(LOCALE_SMONTHNAME5,"majo")
663 LOCVAL(LOCALE_SMONTHNAME6,"junio")
664 LOCVAL(LOCALE_SMONTHNAME7,"julio")
665 LOCVAL(LOCALE_SMONTHNAME8,"aýgusto")
666 LOCVAL(LOCALE_SMONTHNAME9,"septembro")
667 LOCVAL(LOCALE_SMONTHNAME10,"oktobro")
668 LOCVAL(LOCALE_SMONTHNAME11,"novembro")
669 LOCVAL(LOCALE_SMONTHNAME12,"decembro")
670 LOCVAL(LOCALE_SMONTHNAME13,"")
671 LOCVAL(LOCALE_SABBREVMONTHNAME1,"jan")
672 LOCVAL(LOCALE_SABBREVMONTHNAME2,"feb")
673 LOCVAL(LOCALE_SABBREVMONTHNAME3,"mar")
674 LOCVAL(LOCALE_SABBREVMONTHNAME4,"apr")
675 LOCVAL(LOCALE_SABBREVMONTHNAME5,"maj")
676 LOCVAL(LOCALE_SABBREVMONTHNAME6,"jun")
677 LOCVAL(LOCALE_SABBREVMONTHNAME7,"jul")
678 LOCVAL(LOCALE_SABBREVMONTHNAME8,"aýg")
679 LOCVAL(LOCALE_SABBREVMONTHNAME9,"sep")
680 LOCVAL(LOCALE_SABBREVMONTHNAME10,"okt")
681 LOCVAL(LOCALE_SABBREVMONTHNAME11,"nov")
682 LOCVAL(LOCALE_SABBREVMONTHNAME12,"dec")
683 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
684 /* LOCVAL(LOCALE_SPOSITIVESIGN) */
685 /* LOCVAL(LOCALE_SNEGATIVESIGN) */
686 /* LOCVAL(LOCALE_IPOSSIGNPOSN) */
687 /* LOCVAL(LOCALE_INEGSIGNPOSN) */
688 /* LOCVAL(LOCALE_IPOSSYMPRECEDES) */
689 /* LOCVAL(LOCALE_IPOSSEPBYSPACE) */
690 /* LOCVAL(LOCALE_INEGSYMPRECEDES) */
691 /* LOCVAL(LOCALE_INEGSEPBYSPACE) */
692 default: found=0;break;
694 break; /* LANG(Eo) */
696 case LANG_Fi:
697 switch (LCType) {
698 LOCVAL(LOCALE_ILANGUAGE,"11")
699 LOCVAL(LOCALE_SLANGUAGE,"Suomi")
700 LOCVAL(LOCALE_SENGLANGUAGE,"Finnish")
701 LOCVAL(LOCALE_SABBREVLANGNAME,"fin")
702 LOCVAL(LOCALE_SNATIVELANGNAME,"suomi")
703 LOCVAL(LOCALE_ICOUNTRY,"49")
704 LOCVAL(LOCALE_SCOUNTRY,"Suomi")
705 LOCVAL(LOCALE_SENGCOUNTRY,"Finland")
706 LOCVAL(LOCALE_SABBREVCTRYNAME,"Fin")
707 LOCVAL(LOCALE_SNATIVECTRYNAME,"Suomi")
708 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"11")
709 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"358")
711 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
712 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
714 LOCVAL(LOCALE_SLIST,";")
715 LOCVAL(LOCALE_IMEASURE,"0")
716 LOCVAL(LOCALE_SDECIMAL,",")
717 LOCVAL(LOCALE_STHOUSAND,".")
719 LOCVAL(LOCALE_SGROUPING)
721 LOCVAL(LOCALE_IDIGITS,"2")
722 LOCVAL(LOCALE_ILZERO,"1")
724 LOCVAL(LOCALE_INEGNUMBER)
725 Is this "0123456789" ??
726 LOCVAL(LOCALE_SNATIVEDIGITS)
728 LOCVAL(LOCALE_SCURRENCY,"mk")
730 LOCVAL(LOCALE_SINTLSYMBOL)
731 LOCVAL(LOCALE_SMONDECIMALSEP)
732 LOCVAL(LOCALE_SMONTHOUSANDSEP)
733 LOCVAL(LOCALE_SMONGROUPING)
735 LOCVAL(LOCALE_ICURRDIGITS,"2")
737 LOCVAL(LOCALE_IINTLCURRDIGITS)
739 LOCVAL(LOCALE_ICURRENCY,"3")
740 LOCVAL(LOCALE_INEGCURR,"8")
741 LOCVAL(LOCALE_SDATE,".")
742 LOCVAL(LOCALE_STIME,":")
743 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
744 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
746 LOCVAL(LOCALE_STIMEFORMAT)
748 LOCVAL(LOCALE_IDATE,"1")
750 LOCVAL(LOCALE_ILDATE)
752 LOCVAL(LOCALE_ITIME,"1")
754 LOCVAL(LOCALE_ITIMEMARKPOSN)
755 LOCVAL(LOCALE_ICENTURY)
757 LOCVAL(LOCALE_ITLZERO,"1")
759 LOCVAL(LOCALE_IDAYLZERO)
760 LOCVAL(LOCALE_IMONLZERO)
761 LOCVAL(LOCALE_S1159)
762 LOCVAL(LOCALE_S2359)
763 LOCVAL(LOCALE_ICALENDARTYPE)
764 LOCVAL(LOCALE_IOPTIONALCALENDAR)
765 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
766 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
768 LOCVAL(LOCALE_SDAYNAME1,"maanantai")
769 LOCVAL(LOCALE_SDAYNAME2,"tiistai")
770 LOCVAL(LOCALE_SDAYNAME3,"keskiviikko")
771 LOCVAL(LOCALE_SDAYNAME4,"torstai")
772 LOCVAL(LOCALE_SDAYNAME5,"perjantai")
773 LOCVAL(LOCALE_SDAYNAME6,"lauantai")
774 LOCVAL(LOCALE_SDAYNAME7,"sunnuntai")
775 LOCVAL(LOCALE_SABBREVDAYNAME1,"Ma")
776 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ti")
777 LOCVAL(LOCALE_SABBREVDAYNAME3,"Ke")
778 LOCVAL(LOCALE_SABBREVDAYNAME4,"To")
779 LOCVAL(LOCALE_SABBREVDAYNAME5,"Pe")
780 LOCVAL(LOCALE_SABBREVDAYNAME6,"La")
781 LOCVAL(LOCALE_SABBREVDAYNAME7,"Su")
782 LOCVAL(LOCALE_SMONTHNAME1,"tammikuu")
783 LOCVAL(LOCALE_SMONTHNAME2,"helmikuu")
784 LOCVAL(LOCALE_SMONTHNAME3,"maaliskuu")
785 LOCVAL(LOCALE_SMONTHNAME4,"huhtikuu")
786 LOCVAL(LOCALE_SMONTHNAME5,"toukokuu")
787 LOCVAL(LOCALE_SMONTHNAME6,"kesäkuu")
788 LOCVAL(LOCALE_SMONTHNAME7,"heinäkuu")
789 LOCVAL(LOCALE_SMONTHNAME8,"elokuu")
790 LOCVAL(LOCALE_SMONTHNAME9,"syyskuu")
791 LOCVAL(LOCALE_SMONTHNAME10,"lokakuu")
792 LOCVAL(LOCALE_SMONTHNAME11,"marraskuu")
793 LOCVAL(LOCALE_SMONTHNAME12,"joulukuu")
794 LOCVAL(LOCALE_SMONTHNAME13,"")
795 LOCVAL(LOCALE_SABBREVMONTHNAME1,"tammi")
796 LOCVAL(LOCALE_SABBREVMONTHNAME2,"helmi")
797 LOCVAL(LOCALE_SABBREVMONTHNAME3,"maalis")
798 LOCVAL(LOCALE_SABBREVMONTHNAME4,"huhti")
799 LOCVAL(LOCALE_SABBREVMONTHNAME5,"touko")
800 LOCVAL(LOCALE_SABBREVMONTHNAME6,"kesä")
801 LOCVAL(LOCALE_SABBREVMONTHNAME7,"heinä")
802 LOCVAL(LOCALE_SABBREVMONTHNAME8,"elo")
803 LOCVAL(LOCALE_SABBREVMONTHNAME9,"syys")
804 LOCVAL(LOCALE_SABBREVMONTHNAME10,"loka")
805 LOCVAL(LOCALE_SABBREVMONTHNAME11,"marras")
806 LOCVAL(LOCALE_SABBREVMONTHNAME12,"joulu")
807 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
809 LOCVAL(LOCALE_SPOSITIVESIGN)
810 LOCVAL(LOCALE_SNEGATIVESIGN)
811 LOCVAL(LOCALE_IPOSSIGNPOSN)
812 LOCVAL(LOCALE_INEGSIGNPOSN)
813 LOCVAL(LOCALE_IPOSSYMPRECEDES)
814 LOCVAL(LOCALE_IPOSSEPBYSPACE)
815 LOCVAL(LOCALE_INEGSYMPRECEDES)
816 LOCVAL(LOCALE_INEGSEPBYSPACE)
818 default: found=0;break;
820 break; /* LANG(Fi) */
822 case LANG_It:
823 switch (LCType) {
824 LOCVAL(LOCALE_ILANGUAGE,"9")
825 LOCVAL(LOCALE_SLANGUAGE,"Italiano")
826 LOCVAL(LOCALE_SENGLANGUAGE,"Italian")
827 LOCVAL(LOCALE_SABBREVLANGNAME,"ita")
828 LOCVAL(LOCALE_SNATIVELANGNAME,"Italiano")
829 LOCVAL(LOCALE_ICOUNTRY,"39")
830 LOCVAL(LOCALE_SCOUNTRY,"Italia")
831 LOCVAL(LOCALE_SENGCOUNTRY,"Italy")
832 LOCVAL(LOCALE_SABBREVCTRYNAME,"It")
833 LOCVAL(LOCALE_SNATIVECTRYNAME,"Italia")
834 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
835 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"39")
836 /* Dunno
837 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
838 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
840 LOCVAL(LOCALE_SLIST,";")
841 LOCVAL(LOCALE_IMEASURE,"0")
842 LOCVAL(LOCALE_SDECIMAL,",")
843 LOCVAL(LOCALE_STHOUSAND,".")
845 LOCVAL(LOCALE_SGROUPING)
847 LOCVAL(LOCALE_IDIGITS,"2")
848 LOCVAL(LOCALE_ILZERO,"1")
850 LOCVAL(LOCALE_INEGNUMBER)
851 Is this "0123456789" ??
852 LOCVAL(LOCALE_SNATIVEDIGITS)
854 LOCVAL(LOCALE_SCURRENCY,"Lit.")
856 LOCVAL(LOCALE_SINTLSYMBOL)
857 LOCVAL(LOCALE_SMONDECIMALSEP)
858 LOCVAL(LOCALE_SMONTHOUSANDSEP)
859 LOCVAL(LOCALE_SMONGROUPING)
861 LOCVAL(LOCALE_ICURRDIGITS,"2")
863 LOCVAL(LOCALE_IINTLCURRDIGITS)
865 LOCVAL(LOCALE_ICURRENCY,"3")
866 LOCVAL(LOCALE_INEGCURR,"8")
867 LOCVAL(LOCALE_SDATE,".")
868 LOCVAL(LOCALE_STIME,":")
869 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
870 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
872 LOCVAL(LOCALE_STIMEFORMAT)
874 LOCVAL(LOCALE_IDATE,"1")
876 LOCVAL(LOCALE_ILDATE)
878 LOCVAL(LOCALE_ITIME,"1")
880 LOCVAL(LOCALE_ITIMEMARKPOSN)
881 LOCVAL(LOCALE_ICENTURY)
883 LOCVAL(LOCALE_ITLZERO,"1")
885 LOCVAL(LOCALE_IDAYLZERO)
886 LOCVAL(LOCALE_IMONLZERO)
887 LOCVAL(LOCALE_S1159)
888 LOCVAL(LOCALE_S2359)
889 LOCVAL(LOCALE_ICALENDARTYPE)
890 LOCVAL(LOCALE_IOPTIONALCALENDAR)
891 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
892 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
894 LOCVAL(LOCALE_SDAYNAME1,"Lunedi'")
895 LOCVAL(LOCALE_SDAYNAME2,"Martedi'")
896 LOCVAL(LOCALE_SDAYNAME3,"Mercoledi'")
897 LOCVAL(LOCALE_SDAYNAME4,"Giovedi'")
898 LOCVAL(LOCALE_SDAYNAME5,"Venerdi'")
899 LOCVAL(LOCALE_SDAYNAME6,"Sabato")
900 LOCVAL(LOCALE_SDAYNAME7,"Domenica")
901 LOCVAL(LOCALE_SABBREVDAYNAME1,"Lu")
902 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ma")
903 LOCVAL(LOCALE_SABBREVDAYNAME3,"Me")
904 LOCVAL(LOCALE_SABBREVDAYNAME4,"Gi")
905 LOCVAL(LOCALE_SABBREVDAYNAME5,"Ve")
906 LOCVAL(LOCALE_SABBREVDAYNAME6,"Sa")
907 LOCVAL(LOCALE_SABBREVDAYNAME7,"Do")
908 LOCVAL(LOCALE_SMONTHNAME1,"Gennaio")
909 LOCVAL(LOCALE_SMONTHNAME2,"Febbraio")
910 LOCVAL(LOCALE_SMONTHNAME3,"Marzo")
911 LOCVAL(LOCALE_SMONTHNAME4,"Aprile")
912 LOCVAL(LOCALE_SMONTHNAME5,"Maggio")
913 LOCVAL(LOCALE_SMONTHNAME6,"Giugno")
914 LOCVAL(LOCALE_SMONTHNAME7,"Luglio")
915 LOCVAL(LOCALE_SMONTHNAME8,"Agosto")
916 LOCVAL(LOCALE_SMONTHNAME9,"Settembre")
917 LOCVAL(LOCALE_SMONTHNAME10,"Ottobre")
918 LOCVAL(LOCALE_SMONTHNAME11,"Novembre")
919 LOCVAL(LOCALE_SMONTHNAME12,"Dicembre")
920 LOCVAL(LOCALE_SMONTHNAME13,"")
921 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Gen")
922 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
923 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mar")
924 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
925 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mag")
926 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Giu")
927 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Lug")
928 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Ago")
929 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Set")
930 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Ott")
931 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
932 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dic")
933 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
935 LOCVAL(LOCALE_SPOSITIVESIGN)
936 LOCVAL(LOCALE_SNEGATIVESIGN)
937 LOCVAL(LOCALE_IPOSSIGNPOSN)
938 LOCVAL(LOCALE_INEGSIGNPOSN)
939 LOCVAL(LOCALE_IPOSSYMPRECEDES)
940 LOCVAL(LOCALE_IPOSSEPBYSPACE)
941 LOCVAL(LOCALE_INEGSYMPRECEDES)
942 LOCVAL(LOCALE_INEGSEPBYSPACE)
944 default: found=0;break;
946 break; /* LANG(It) */
948 case 0x0409:
949 switch (LCType) {
950 LOCVAL(LOCALE_ILANGUAGE, "0409")
951 LOCVAL(LOCALE_SLANGUAGE, "English (United States)")
952 LOCVAL(LOCALE_SENGLANGUAGE, "English")
953 LOCVAL(LOCALE_SABBREVLANGNAME, "ENU")
954 LOCVAL(LOCALE_SNATIVELANGNAME, "English")
955 LOCVAL(LOCALE_ICOUNTRY, "1")
956 LOCVAL(LOCALE_SCOUNTRY, "United States")
957 LOCVAL(LOCALE_SENGCOUNTRY, "United States")
958 LOCVAL(LOCALE_SABBREVCTRYNAME, "USA")
959 LOCVAL(LOCALE_SNATIVECTRYNAME, "United States")
960 LOCVAL(LOCALE_IDEFAULTLANGUAGE, "0409")
961 LOCVAL(LOCALE_IDEFAULTCOUNTRY, "1")
962 LOCVAL(LOCALE_IDEFAULTCODEPAGE, "437")
963 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE, "1252")
964 LOCVAL(LOCALE_SLIST, ",")
965 LOCVAL(LOCALE_IMEASURE, "1")
966 LOCVAL(LOCALE_SDECIMAL, ".")
967 LOCVAL(LOCALE_STHOUSAND, ",")
968 LOCVAL(LOCALE_SGROUPING, "3;0")
969 LOCVAL(LOCALE_IDIGITS, "2")
970 LOCVAL(LOCALE_ILZERO, "1")
971 LOCVAL(LOCALE_INEGNUMBER, "1")
972 LOCVAL(LOCALE_SNATIVEDIGITS, "0123456789")
973 LOCVAL(LOCALE_SCURRENCY, "$")
974 LOCVAL(LOCALE_SINTLSYMBOL, "USD")
975 LOCVAL(LOCALE_SMONDECIMALSEP, ".")
976 LOCVAL(LOCALE_SMONTHOUSANDSEP, ",")
977 LOCVAL(LOCALE_SMONGROUPING, "3;0")
978 LOCVAL(LOCALE_ICURRDIGITS, "2")
979 LOCVAL(LOCALE_IINTLCURRDIGITS, "2")
980 LOCVAL(LOCALE_ICURRENCY, "0")
981 LOCVAL(LOCALE_INEGCURR, "0")
982 LOCVAL(LOCALE_SDATE, "/")
983 LOCVAL(LOCALE_STIME, ":")
984 LOCVAL(LOCALE_SSHORTDATE, "M/d/yy")
985 LOCVAL(LOCALE_SLONGDATE, "dddd, MMMM dd, yyyy")
986 LOCVAL(LOCALE_STIMEFORMAT, "h:mm:ss tt")
987 LOCVAL(LOCALE_IDATE, "0")
988 LOCVAL(LOCALE_ILDATE, "0")
989 LOCVAL(LOCALE_ITIME, "0")
990 LOCVAL(LOCALE_ITIMEMARKPOSN, "0")
991 LOCVAL(LOCALE_ICENTURY, "0")
992 LOCVAL(LOCALE_ITLZERO, "0")
993 LOCVAL(LOCALE_IDAYLZERO, "0")
994 LOCVAL(LOCALE_IMONLZERO, "0")
995 LOCVAL(LOCALE_S1159, "AM")
996 LOCVAL(LOCALE_S2359, "PM")
997 LOCVAL(LOCALE_ICALENDARTYPE, "1")
998 LOCVAL(LOCALE_IOPTIONALCALENDAR, "0")
999 LOCVAL(LOCALE_IFIRSTDAYOFWEEK, "6")
1000 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR, "0")
1001 LOCVAL(LOCALE_SDAYNAME1, "Monday")
1002 LOCVAL(LOCALE_SDAYNAME2, "Tuesday")
1003 LOCVAL(LOCALE_SDAYNAME3, "Wednesday")
1004 LOCVAL(LOCALE_SDAYNAME4, "Thursday")
1005 LOCVAL(LOCALE_SDAYNAME5, "Friday")
1006 LOCVAL(LOCALE_SDAYNAME6, "Saturday")
1007 LOCVAL(LOCALE_SDAYNAME7, "Sunday")
1008 LOCVAL(LOCALE_SABBREVDAYNAME1, "Mon")
1009 LOCVAL(LOCALE_SABBREVDAYNAME2, "Tue")
1010 LOCVAL(LOCALE_SABBREVDAYNAME3, "Wed")
1011 LOCVAL(LOCALE_SABBREVDAYNAME4, "Thu")
1012 LOCVAL(LOCALE_SABBREVDAYNAME5, "Fri")
1013 LOCVAL(LOCALE_SABBREVDAYNAME6, "Sat")
1014 LOCVAL(LOCALE_SABBREVDAYNAME7, "Sun")
1015 LOCVAL(LOCALE_SMONTHNAME1, "January")
1016 LOCVAL(LOCALE_SMONTHNAME2, "February")
1017 LOCVAL(LOCALE_SMONTHNAME3, "March")
1018 LOCVAL(LOCALE_SMONTHNAME4, "April")
1019 LOCVAL(LOCALE_SMONTHNAME5, "May")
1020 LOCVAL(LOCALE_SMONTHNAME6, "June")
1021 LOCVAL(LOCALE_SMONTHNAME7, "July")
1022 LOCVAL(LOCALE_SMONTHNAME8, "August")
1023 LOCVAL(LOCALE_SMONTHNAME9, "September")
1024 LOCVAL(LOCALE_SMONTHNAME10, "October")
1025 LOCVAL(LOCALE_SMONTHNAME11, "November")
1026 LOCVAL(LOCALE_SMONTHNAME12, "December")
1027 LOCVAL(LOCALE_SMONTHNAME13, "")
1028 LOCVAL(LOCALE_SABBREVMONTHNAME1, "Jan")
1029 LOCVAL(LOCALE_SABBREVMONTHNAME2, "Feb")
1030 LOCVAL(LOCALE_SABBREVMONTHNAME3, "Mar")
1031 LOCVAL(LOCALE_SABBREVMONTHNAME4, "Apr")
1032 LOCVAL(LOCALE_SABBREVMONTHNAME5, "May")
1033 LOCVAL(LOCALE_SABBREVMONTHNAME6, "Jun")
1034 LOCVAL(LOCALE_SABBREVMONTHNAME7, "Jul")
1035 LOCVAL(LOCALE_SABBREVMONTHNAME8, "Aug")
1036 LOCVAL(LOCALE_SABBREVMONTHNAME9, "Sep")
1037 LOCVAL(LOCALE_SABBREVMONTHNAME10, "Oct")
1038 LOCVAL(LOCALE_SABBREVMONTHNAME11, "Nov")
1039 LOCVAL(LOCALE_SABBREVMONTHNAME12, "Dec")
1040 LOCVAL(LOCALE_SABBREVMONTHNAME13, "")
1041 LOCVAL(LOCALE_SPOSITIVESIGN, "")
1042 LOCVAL(LOCALE_SNEGATIVESIGN, "-")
1043 LOCVAL(LOCALE_IPOSSIGNPOSN, "3")
1044 LOCVAL(LOCALE_INEGSIGNPOSN, "0")
1045 LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
1046 LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
1047 LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
1048 LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
1049 default: found=0;break;
1051 break; /* LANG(0x0409) (U.S. English) */
1053 case 0x0809:
1054 switch (LCType) {
1055 LOCVAL(LOCALE_ILANGUAGE, "0809")
1056 LOCVAL(LOCALE_SLANGUAGE, "English (United Kingdom)")
1057 LOCVAL(LOCALE_SENGLANGUAGE, "English")
1058 LOCVAL(LOCALE_SABBREVLANGNAME, "ENG")
1059 LOCVAL(LOCALE_SNATIVELANGNAME, "English")
1060 LOCVAL(LOCALE_ICOUNTRY, "44")
1061 LOCVAL(LOCALE_SCOUNTRY, "United Kingdom")
1062 LOCVAL(LOCALE_SENGCOUNTRY, "United Kingdom")
1063 LOCVAL(LOCALE_SABBREVCTRYNAME, "GBR")
1064 LOCVAL(LOCALE_SNATIVECTRYNAME, "United Kingdom")
1065 LOCVAL(LOCALE_IDEFAULTLANGUAGE, "0809")
1066 LOCVAL(LOCALE_IDEFAULTCOUNTRY, "44")
1067 LOCVAL(LOCALE_IDEFAULTCODEPAGE, "850")
1068 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE, "1252")
1069 LOCVAL(LOCALE_SLIST, ",")
1070 LOCVAL(LOCALE_IMEASURE, "0")
1071 LOCVAL(LOCALE_SDECIMAL, ".")
1072 LOCVAL(LOCALE_STHOUSAND, ",")
1073 LOCVAL(LOCALE_SGROUPING, "3;0")
1074 LOCVAL(LOCALE_IDIGITS, "2")
1075 LOCVAL(LOCALE_ILZERO, "1")
1076 LOCVAL(LOCALE_INEGNUMBER, "1")
1077 LOCVAL(LOCALE_SNATIVEDIGITS, "0123456789")
1078 LOCVAL(LOCALE_SCURRENCY, "£")
1079 LOCVAL(LOCALE_SINTLSYMBOL, "GBP")
1080 LOCVAL(LOCALE_SMONDECIMALSEP, ".")
1081 LOCVAL(LOCALE_SMONTHOUSANDSEP, ",")
1082 LOCVAL(LOCALE_SMONGROUPING, "3;0")
1083 LOCVAL(LOCALE_ICURRDIGITS, "2")
1084 LOCVAL(LOCALE_IINTLCURRDIGITS, "2")
1085 LOCVAL(LOCALE_ICURRENCY, "0")
1086 LOCVAL(LOCALE_INEGCURR, "1")
1087 LOCVAL(LOCALE_SDATE, "/")
1088 LOCVAL(LOCALE_STIME, ":")
1089 LOCVAL(LOCALE_SSHORTDATE, "dd/MM/yy")
1090 LOCVAL(LOCALE_SLONGDATE, "dd MMMM yyyy")
1091 LOCVAL(LOCALE_STIMEFORMAT, "HH:mm:ss")
1092 LOCVAL(LOCALE_IDATE, "1")
1093 LOCVAL(LOCALE_ILDATE, "1")
1094 LOCVAL(LOCALE_ITIME, "1")
1095 LOCVAL(LOCALE_ITIMEMARKPOSN, "0")
1096 LOCVAL(LOCALE_ICENTURY, "0")
1097 LOCVAL(LOCALE_ITLZERO, "1")
1098 LOCVAL(LOCALE_IDAYLZERO, "1")
1099 LOCVAL(LOCALE_IMONLZERO, "1")
1100 LOCVAL(LOCALE_S1159, "")
1101 LOCVAL(LOCALE_S2359, "")
1102 LOCVAL(LOCALE_ICALENDARTYPE, "1")
1103 LOCVAL(LOCALE_IOPTIONALCALENDAR, "0")
1104 LOCVAL(LOCALE_IFIRSTDAYOFWEEK, "0")
1105 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR, "0")
1106 LOCVAL(LOCALE_SDAYNAME1, "Monday")
1107 LOCVAL(LOCALE_SDAYNAME2, "Tuesday")
1108 LOCVAL(LOCALE_SDAYNAME3, "Wednesday")
1109 LOCVAL(LOCALE_SDAYNAME4, "Thursday")
1110 LOCVAL(LOCALE_SDAYNAME5, "Friday")
1111 LOCVAL(LOCALE_SDAYNAME6, "Saturday")
1112 LOCVAL(LOCALE_SDAYNAME7, "Sunday")
1113 LOCVAL(LOCALE_SABBREVDAYNAME1, "Mon")
1114 LOCVAL(LOCALE_SABBREVDAYNAME2, "Tue")
1115 LOCVAL(LOCALE_SABBREVDAYNAME3, "Wed")
1116 LOCVAL(LOCALE_SABBREVDAYNAME4, "Thu")
1117 LOCVAL(LOCALE_SABBREVDAYNAME5, "Fri")
1118 LOCVAL(LOCALE_SABBREVDAYNAME6, "Sat")
1119 LOCVAL(LOCALE_SABBREVDAYNAME7, "Sun")
1120 LOCVAL(LOCALE_SMONTHNAME1, "January")
1121 LOCVAL(LOCALE_SMONTHNAME2, "February")
1122 LOCVAL(LOCALE_SMONTHNAME3, "March")
1123 LOCVAL(LOCALE_SMONTHNAME4, "April")
1124 LOCVAL(LOCALE_SMONTHNAME5, "May")
1125 LOCVAL(LOCALE_SMONTHNAME6, "June")
1126 LOCVAL(LOCALE_SMONTHNAME7, "July")
1127 LOCVAL(LOCALE_SMONTHNAME8, "August")
1128 LOCVAL(LOCALE_SMONTHNAME9, "September")
1129 LOCVAL(LOCALE_SMONTHNAME10, "October")
1130 LOCVAL(LOCALE_SMONTHNAME11, "November")
1131 LOCVAL(LOCALE_SMONTHNAME12, "December")
1132 LOCVAL(LOCALE_SMONTHNAME13, "")
1133 LOCVAL(LOCALE_SABBREVMONTHNAME1, "Jan")
1134 LOCVAL(LOCALE_SABBREVMONTHNAME2, "Feb")
1135 LOCVAL(LOCALE_SABBREVMONTHNAME3, "Mar")
1136 LOCVAL(LOCALE_SABBREVMONTHNAME4, "Apr")
1137 LOCVAL(LOCALE_SABBREVMONTHNAME5, "May")
1138 LOCVAL(LOCALE_SABBREVMONTHNAME6, "Jun")
1139 LOCVAL(LOCALE_SABBREVMONTHNAME7, "Jul")
1140 LOCVAL(LOCALE_SABBREVMONTHNAME8, "Aug")
1141 LOCVAL(LOCALE_SABBREVMONTHNAME9, "Sep")
1142 LOCVAL(LOCALE_SABBREVMONTHNAME10, "Oct")
1143 LOCVAL(LOCALE_SABBREVMONTHNAME11, "Nov")
1144 LOCVAL(LOCALE_SABBREVMONTHNAME12, "Dec")
1145 LOCVAL(LOCALE_SABBREVMONTHNAME13, "")
1146 LOCVAL(LOCALE_SPOSITIVESIGN, "")
1147 LOCVAL(LOCALE_SNEGATIVESIGN, "-")
1148 LOCVAL(LOCALE_IPOSSIGNPOSN, "3")
1149 LOCVAL(LOCALE_INEGSIGNPOSN, "3")
1150 LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
1151 LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
1152 LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
1153 LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
1154 default: found=0;break;
1156 break; /* LANG(0x0809) (U.K. English) */
1158 /*Insert other languages here*/
1160 default:
1161 found=0;
1162 break;
1163 } /* switch */
1165 if(!found) {
1166 fprintf(stderr,"'%s' not supported for your language.\n",
1167 retString);
1168 return 0;
1170 lstrcpyn32A(buf,retString,len);
1171 return strlen(retString)+1;
1174 /***********************************************************************
1175 * GetLocaleInfo32W (KERNEL32.230)
1176 * Is the last parameter really WORD for Win16?
1178 INT32 GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len)
1180 int i;
1181 LPSTR abuf = (LPSTR) wbuf;
1182 INT32 n = GetLocaleInfoA(lcid, LCType, abuf, len);
1183 for (i = n; i > 0; --i) {
1184 wbuf[i] = abuf[i];
1186 return n;
1189 /***********************************************************************
1190 * CompareString16 (OLE2NLS.8)
1192 UINT16 CompareString16(DWORD lcid,DWORD fdwStyle,
1193 LPCSTR s1,DWORD l1,LPCSTR s2,DWORD l2)
1195 return (UINT16)CompareString32A(lcid,fdwStyle,s1,l1,s2,l2);
1198 /***********************************************************************
1199 * CompareString32A (KERNEL32.29)
1200 * This implementation ignores the locale
1201 * FIXME
1203 UINT32 CompareString32A(DWORD lcid, DWORD fdwStyle,
1204 LPCSTR s1, DWORD l1, LPCSTR s2,DWORD l2)
1206 int len,ret;
1207 if(fdwStyle & NORM_IGNORENONSPACE)
1209 fprintf(stdnimp, "CompareStringA: IGNORENONSPACE not supprted\n");
1211 if(fdwStyle & NORM_IGNORESYMBOLS)
1212 fprintf(stdnimp, "CompareStringA: IGNORESYMBOLS not supported\n");
1213 /* Is strcmp defaulting to string sort or to word sort?? */
1214 /* FIXME: Handle NORM_STRINGSORT */
1215 l1 = (l1==-1)?strlen(s1):l1;
1216 l2 = (l2==-1)?strlen(s2):l2;
1217 len = l1<l2 ? l1:l2;
1218 ret = (fdwStyle & NORM_IGNORECASE) ?
1219 lstrncmpi32A(s1,s2,len) : lstrncmp32A(s1,s2,len);
1220 /* not equal, return 1 or 3 */
1221 if(ret!=0)return ret+2;
1222 /* same len, return 2 */
1223 if(l1==l2)return 2;
1224 /* the longer one is lexically greater */
1225 return (l1<l2)? 1 : 3;
1228 /***********************************************************************
1229 * CompareString32W (KERNEL32.30)
1230 * This implementation ignores the locale
1231 * FIXME
1233 UINT32 CompareString32W(DWORD lcid, DWORD fdwStyle,
1234 LPCWSTR s1, DWORD l1, LPCWSTR s2,DWORD l2)
1236 int len,ret;
1237 if(fdwStyle & NORM_IGNORENONSPACE)
1238 fprintf(stdnimp,"CompareStringW:IGNORENONSPACE not supprted\n");
1239 if(fdwStyle & NORM_IGNORESYMBOLS)
1240 fprintf(stdnimp,"CompareStringW:IGNORESYMBOLS not supported\n");
1242 /* Is strcmp defaulting to string sort or to word sort?? */
1243 /* FIXME: Handle NORM_STRINGSORT */
1244 l1 = (l1==-1)?lstrlen32W(s1):l1;
1245 l2 = (l2==-1)?lstrlen32W(s2):l2;
1246 len = l1<l2 ? l1:l2;
1247 ret = (fdwStyle & NORM_IGNORECASE) ?
1248 lstrncmpi32W(s1,s2,len) : lstrncmp32W(s1,s2,len);
1249 /* not equal, return 1 or 3 */
1250 if(ret!=0) return ret+2;
1251 /* same len, return 2 */
1252 if(l1==l2) return 2;
1253 /* the longer one is lexically greater */
1254 return (l1<l2)? 1 : 3;
1257 /***********************************************************************
1258 * SetLocalInfoA (KERNEL32.499)
1260 BOOL SetLocaleInfoA(DWORD lcid, DWORD lctype, LPCSTR data) {
1261 fprintf(stdnimp,"SetLocaleInfoA(%ld,%ld,%s)\n",lcid,lctype,data);
1262 return TRUE;
1265 /***********************************************************************
1266 * IsValidLocale (KERNEL32.361)
1268 BOOL32 IsValidLocale(DWORD lcid,DWORD flags) {
1269 int i;
1271 i=0;
1272 while (locale_name2id[i].name!=NULL)
1273 if (locale_name2id[i].id == lcid)
1274 return TRUE;
1275 return FALSE;
1278 /***********************************************************************
1279 * EnumSystemLocales32W (KERNEL32.93)
1281 BOOL32 EnumSystemLocales32W( LOCALE_ENUMPROC32W lpfnLocaleEnum, DWORD flags )
1283 int i;
1284 BOOL32 ret;
1286 dprintf_win32(stddeb,"EnumSystemLocales32W(%p,%08lx)\n",
1287 lpfnLocaleEnum,flags );
1288 i=0;
1289 while (locale_name2id[i].name!=NULL)
1291 LPWSTR cp = HEAP_strdupAtoW( GetProcessHeap(), 0,
1292 locale_name2id[i].name );
1293 ret = lpfnLocaleEnum(cp);
1294 HeapFree( GetProcessHeap(), 0, cp );
1295 if (!ret) break;
1296 i++;
1298 return TRUE;
1301 /***********************************************************************
1302 * EnumSystemLocales32A (KERNEL32.92)
1304 BOOL32
1305 EnumSystemLocales32A(LOCALE_ENUMPROC32A lpfnLocaleEnum,DWORD flags) {
1306 int i;
1308 dprintf_win32(stddeb,"EnumSystemLocales32A(%p,%08lx)\n",
1309 lpfnLocaleEnum,flags
1311 i=0;
1312 while (locale_name2id[i].name!=NULL) {
1313 if (!lpfnLocaleEnum(locale_name2id[i].name))
1314 break;
1315 i++;
1317 return TRUE;