Release 971012
[wine/multimedia.git] / misc / ole2nls.c
blobe89c0c67d9da188b7fe0aca7aa8877c98379b057
1 /*
2 * OLE2NLS library
4 * Copyright 1995 Martin von Loewis
5 */
7 #include <string.h>
8 #include <ctype.h>
9 #include <stdlib.h>
10 #include "windows.h"
11 #include "heap.h"
12 #include "ole.h"
13 #include "options.h"
14 #include "winnls.h"
15 #include "winreg.h"
16 #include "winerror.h"
17 #include "stddebug.h"
18 #include "debug.h"
20 /* Locale name to id map. used by EnumSystemLocales, GetLocalInfoA
21 * MUST contain all #defines from winnls.h
22 * last entry has NULL name, 0 id.
23 */
24 #define LOCALE_ENTRY(x) {#x,LOCALE_##x}
25 static struct tagLOCALE_NAME2ID {
26 char *name;
27 DWORD id;
28 } locale_name2id[]= {
29 LOCALE_ENTRY(ILANGUAGE),
30 LOCALE_ENTRY(SLANGUAGE),
31 LOCALE_ENTRY(SENGLANGUAGE),
32 LOCALE_ENTRY(SABBREVLANGNAME),
33 LOCALE_ENTRY(SNATIVELANGNAME),
34 LOCALE_ENTRY(ICOUNTRY),
35 LOCALE_ENTRY(SCOUNTRY),
36 LOCALE_ENTRY(SENGCOUNTRY),
37 LOCALE_ENTRY(SABBREVCTRYNAME),
38 LOCALE_ENTRY(SNATIVECTRYNAME),
39 LOCALE_ENTRY(IDEFAULTLANGUAGE),
40 LOCALE_ENTRY(IDEFAULTCOUNTRY),
41 LOCALE_ENTRY(IDEFAULTCODEPAGE),
42 LOCALE_ENTRY(IDEFAULTANSICODEPAGE),
43 LOCALE_ENTRY(SLIST),
44 LOCALE_ENTRY(IMEASURE),
45 LOCALE_ENTRY(SDECIMAL),
46 LOCALE_ENTRY(STHOUSAND),
47 LOCALE_ENTRY(SGROUPING),
48 LOCALE_ENTRY(IDIGITS),
49 LOCALE_ENTRY(ILZERO),
50 LOCALE_ENTRY(INEGNUMBER),
51 LOCALE_ENTRY(SNATIVEDIGITS),
52 LOCALE_ENTRY(SCURRENCY),
53 LOCALE_ENTRY(SINTLSYMBOL),
54 LOCALE_ENTRY(SMONDECIMALSEP),
55 LOCALE_ENTRY(SMONTHOUSANDSEP),
56 LOCALE_ENTRY(SMONGROUPING),
57 LOCALE_ENTRY(ICURRDIGITS),
58 LOCALE_ENTRY(IINTLCURRDIGITS),
59 LOCALE_ENTRY(ICURRENCY),
60 LOCALE_ENTRY(INEGCURR),
61 LOCALE_ENTRY(SDATE),
62 LOCALE_ENTRY(STIME),
63 LOCALE_ENTRY(SSHORTDATE),
64 LOCALE_ENTRY(SLONGDATE),
65 LOCALE_ENTRY(STIMEFORMAT),
66 LOCALE_ENTRY(IDATE),
67 LOCALE_ENTRY(ILDATE),
68 LOCALE_ENTRY(ITIME),
69 LOCALE_ENTRY(ITIMEMARKPOSN),
70 LOCALE_ENTRY(ICENTURY),
71 LOCALE_ENTRY(ITLZERO),
72 LOCALE_ENTRY(IDAYLZERO),
73 LOCALE_ENTRY(IMONLZERO),
74 LOCALE_ENTRY(S1159),
75 LOCALE_ENTRY(S2359),
76 LOCALE_ENTRY(ICALENDARTYPE),
77 LOCALE_ENTRY(IOPTIONALCALENDAR),
78 LOCALE_ENTRY(IFIRSTDAYOFWEEK),
79 LOCALE_ENTRY(IFIRSTWEEKOFYEAR),
80 LOCALE_ENTRY(SDAYNAME1),
81 LOCALE_ENTRY(SDAYNAME2),
82 LOCALE_ENTRY(SDAYNAME3),
83 LOCALE_ENTRY(SDAYNAME4),
84 LOCALE_ENTRY(SDAYNAME5),
85 LOCALE_ENTRY(SDAYNAME6),
86 LOCALE_ENTRY(SDAYNAME7),
87 LOCALE_ENTRY(SABBREVDAYNAME1),
88 LOCALE_ENTRY(SABBREVDAYNAME2),
89 LOCALE_ENTRY(SABBREVDAYNAME3),
90 LOCALE_ENTRY(SABBREVDAYNAME4),
91 LOCALE_ENTRY(SABBREVDAYNAME5),
92 LOCALE_ENTRY(SABBREVDAYNAME6),
93 LOCALE_ENTRY(SABBREVDAYNAME7),
94 LOCALE_ENTRY(SMONTHNAME1),
95 LOCALE_ENTRY(SMONTHNAME2),
96 LOCALE_ENTRY(SMONTHNAME3),
97 LOCALE_ENTRY(SMONTHNAME4),
98 LOCALE_ENTRY(SMONTHNAME5),
99 LOCALE_ENTRY(SMONTHNAME6),
100 LOCALE_ENTRY(SMONTHNAME7),
101 LOCALE_ENTRY(SMONTHNAME8),
102 LOCALE_ENTRY(SMONTHNAME9),
103 LOCALE_ENTRY(SMONTHNAME10),
104 LOCALE_ENTRY(SMONTHNAME11),
105 LOCALE_ENTRY(SMONTHNAME12),
106 LOCALE_ENTRY(SMONTHNAME13),
107 LOCALE_ENTRY(SABBREVMONTHNAME1),
108 LOCALE_ENTRY(SABBREVMONTHNAME2),
109 LOCALE_ENTRY(SABBREVMONTHNAME3),
110 LOCALE_ENTRY(SABBREVMONTHNAME4),
111 LOCALE_ENTRY(SABBREVMONTHNAME5),
112 LOCALE_ENTRY(SABBREVMONTHNAME6),
113 LOCALE_ENTRY(SABBREVMONTHNAME7),
114 LOCALE_ENTRY(SABBREVMONTHNAME8),
115 LOCALE_ENTRY(SABBREVMONTHNAME9),
116 LOCALE_ENTRY(SABBREVMONTHNAME10),
117 LOCALE_ENTRY(SABBREVMONTHNAME11),
118 LOCALE_ENTRY(SABBREVMONTHNAME12),
119 LOCALE_ENTRY(SABBREVMONTHNAME13),
120 LOCALE_ENTRY(SPOSITIVESIGN),
121 LOCALE_ENTRY(SNEGATIVESIGN),
122 LOCALE_ENTRY(IPOSSIGNPOSN),
123 LOCALE_ENTRY(INEGSIGNPOSN),
124 LOCALE_ENTRY(IPOSSYMPRECEDES),
125 LOCALE_ENTRY(IPOSSEPBYSPACE),
126 LOCALE_ENTRY(INEGSYMPRECEDES),
127 LOCALE_ENTRY(INEGSEPBYSPACE),
128 /* LOCALE_ENTRY(FONTSIGNATURE),*/
129 {NULL,0},
132 const struct map_lcid2str {
133 LCID langid;
134 const char *langname;
135 } languages[]={
136 {0x0401,"Arabisch"},
137 {0x0402,"Bulgarisch"},
138 {0x0403,"Katalanisch"},
139 {0x0404,"Traditionales Chinesisch"},
140 {0x0405,"Tschecisch"},
141 {0x0406,"Ddnisch"},
142 {0x0407,"Deutsch"},
143 {0x0408,"Griechisch"},
144 {0x0409,"Amerikanisches Englisch"},
145 {0x040A,"Kastilisches Spanisch"},
146 {0x040B,"Finnisch"},
147 {0x040C,"Franzvsisch"},
148 {0x040D,"Hebrdisch"},
149 {0x040E,"Ungarisch"},
150 {0x040F,"Isldndisch"},
151 {0x0410,"Italienisch"},
152 {0x0411,"Japanisch"},
153 {0x0412,"Koreanisch"},
154 {0x0413,"Niederldndisch"},
155 {0x0414,"Norwegisch-Bokmal"},
156 {0x0415,"Polnisch"},
157 {0x0416,"Brasilianisches Portugiesisch"},
158 {0x0417,"Rdtoromanisch"},
159 {0x0418,"Rumdnisch"},
160 {0x0419,"Russisch"},
161 {0x041A,"Kroatoserbisch (lateinisch)"},
162 {0x041B,"Slowenisch"},
163 {0x041C,"Albanisch"},
164 {0x041D,"Schwedisch"},
165 {0x041E,"Thai"},
166 {0x041F,"T|rkisch"},
167 {0x0420,"Urdu"},
168 {0x0421,"Bahasa"},
169 {0x0804,"Vereinfachtes Chinesisch"},
170 {0x0807,"Schweizerdeutsch"},
171 {0x0809,"Britisches Englisch"},
172 {0x080A,"Mexikanisches Spanisch"},
173 {0x080C,"Belgisches Franzvsisch"},
174 {0x0810,"Schweizerisches Italienisch"},
175 {0x0813,"Belgisches Niederldndisch"},
176 {0x0814,"Norgwegisch-Nynorsk"},
177 {0x0816,"Portugiesisch"},
178 {0x081A,"Serbokratisch (kyrillisch)"},
179 {0x0C1C,"Kanadisches Franzvsisch"},
180 {0x100C,"Schweizerisches Franzvsisch"},
181 {0x0000,"Unbekannt"},
184 /***********************************************************************
185 * GetUserDefaultLCID (OLE2NLS.1)
187 LCID WINAPI GetUserDefaultLCID()
189 /* Default sorting, neutral sublanguage */
190 switch(Options.language)
192 /* case LANG_Bu: return 0x02; */ /* Bulgarian */
193 /* case LANG_Ch: return 0x04; */ /* Chinese */
194 case LANG_Cz: return 0x05; /* Czech */
195 case LANG_Da: return 0x06; /* Danish */
196 case LANG_De: return 0x07; /* German */
197 /* case LANG_Gr: return 0x08; */ /* Greek */
198 case LANG_En: return 0x09; /* English */
199 case LANG_Es: return 0x0a; /* Spanish */
200 case LANG_Fi: return 0x0b; /* Finnish */
201 case LANG_Fr: return 0x0c; /* French */
202 case LANG_Hu: return 0x0e; /* Hungarian */
203 /* case LANG_Ic: return 0x0f; */ /* Icelandic */
204 case LANG_It: return 0x10; /* Italian */
205 /* case LANG_Jp: return 0x11; */ /* Japanese */
206 case LANG_Ko: return 0x12; /* Korean */
207 /* case LANG_Du: return 0x13; */ /* Dutch */
208 case LANG_No: return 0x14; /* Norwegian */
209 case LANG_Pl: return 0x15; /* Polish */
210 case LANG_Po: return 0x16; /* Portuguese */
211 /* case LANG_Ro: return 0x18; */ /* Romanian */
212 /* case LANG_Ru: return 0x19; */ /* Russian */
213 /* case LANG_Cr: return 0x1a; */ /* Croatian */
214 /* case LANG_Sl: return 0x1b; */ /* Slovak */
215 /* case LANG_Sw: return 0x1d; */ /* Swedish */
216 /* case LANG_Tu: return 0x1f; */ /* Turkish */
217 /* case LANG_Sv: return 0x24; */ /* Slovenian */
218 case LANG_Eo: return 0x25; /* Esperanto (not official) */
220 default:
221 return 0x00; /* Neutral language */
225 /***********************************************************************
226 * GetSystemDefaultLCID (OLE2NLS.2)
228 LCID WINAPI GetSystemDefaultLCID()
230 return GetUserDefaultLCID();
233 /***********************************************************************
234 * GetUserDefaultLangID (OLE2NLS.3)
236 LANGID WINAPI GetUserDefaultLangID()
238 return (WORD)GetUserDefaultLCID();
241 /***********************************************************************
242 * GetSystemDefaultLangID (OLE2NLS.4)
244 LANGID WINAPI GetSystemDefaultLangID()
246 return GetUserDefaultLangID();
249 /***********************************************************************
250 * GetLocaleInfoA (OLE2NLS.5)
251 * Is the last parameter really WORD for Win16?
253 INT16 WINAPI GetLocaleInfo16(LCID lcid,LCTYPE LCType,LPSTR buf,INT16 len)
255 return GetLocaleInfo32A(lcid,LCType,buf,len);
258 INT32 WINAPI GetLocaleInfo32A(LCID lcid,LCTYPE LCType,LPSTR buf,INT32 len)
260 char *retString;
261 int found,i;
263 dprintf_ole(stddeb,"GetLocaleInfo32A(%8lX,%8lX,%p,%4X)\n",
264 lcid,LCType,buf,len);
266 LCType &= ~(LOCALE_NOUSEROVERRIDE|LOCALE_USE_CP_ACP);
268 /* As an option, we could obtain the value from win.ini.
269 This would not match the Wine compile-time option.
270 Also, not all identifiers are available from win.ini */
271 retString=0;
272 /* If we are through all of this, retLen should not be zero anymore.
273 If it is, the value is not supported */
274 i=0;
275 while (locale_name2id[i].name!=NULL) {
276 if (LCType == locale_name2id[i].id) {
277 retString = locale_name2id[i].name;
278 break;
280 i++;
282 if (!retString) {
283 fprintf(stderr,"Unkown LC type %lX\n",LCType);
284 return 0;
287 #define LOCVAL(type,value) case type:retString=value;break;
289 /* Now, the language specific definitions. They don't have to be
290 complete */
291 found=1;
292 switch(Options.language)
294 case LANG_De:
295 switch (LCType) {
296 /* This definitions apply to Germany only. Users in Austria
297 or Switzerland might want to modify them */
298 LOCVAL(LOCALE_ILANGUAGE,"9")
299 LOCVAL(LOCALE_SLANGUAGE,"Deutsch")
300 LOCVAL(LOCALE_SENGLANGUAGE,"German")
301 LOCVAL(LOCALE_SABBREVLANGNAME,"deu")
302 LOCVAL(LOCALE_SNATIVELANGNAME,"Deutsch")
303 LOCVAL(LOCALE_ICOUNTRY,"49")
304 LOCVAL(LOCALE_SCOUNTRY,"Deutschland")
305 LOCVAL(LOCALE_SENGCOUNTRY,"Deutschland")
306 LOCVAL(LOCALE_SABBREVCTRYNAME,"De")
307 LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland")
308 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
309 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49")
310 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"851")
311 /* Dunno
312 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
314 LOCVAL(LOCALE_SLIST,";")
315 LOCVAL(LOCALE_IMEASURE,"0")
316 LOCVAL(LOCALE_SDECIMAL,",")
317 LOCVAL(LOCALE_STHOUSAND,".")
319 LOCVAL(LOCALE_SGROUPING)
321 LOCVAL(LOCALE_IDIGITS,"2")
322 LOCVAL(LOCALE_ILZERO,"1")
324 LOCVAL(LOCALE_INEGNUMBER)
325 Is this "0123456789" ??
326 LOCVAL(LOCALE_SNATIVEDIGITS)
328 LOCVAL(LOCALE_SCURRENCY,"DM")
330 LOCVAL(LOCALE_SINTLSYMBOL)
331 LOCVAL(LOCALE_SMONDECIMALSEP)
332 LOCVAL(LOCALE_SMONTHOUSANDSEP)
333 LOCVAL(LOCALE_SMONGROUPING)
335 LOCVAL(LOCALE_ICURRDIGITS,"2")
337 LOCVAL(LOCALE_IINTLCURRDIGITS)
339 LOCVAL(LOCALE_ICURRENCY,"3")
340 LOCVAL(LOCALE_INEGCURR,"8")
341 LOCVAL(LOCALE_SDATE,".")
342 LOCVAL(LOCALE_STIME,":")
343 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
344 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
346 LOCVAL(LOCALE_STIMEFORMAT)
348 LOCVAL(LOCALE_IDATE,"1")
350 LOCVAL(LOCALE_ILDATE)
352 LOCVAL(LOCALE_ITIME,"1")
354 LOCVAL(LOCALE_ITIMEMARKPOSN)
355 LOCVAL(LOCALE_ICENTURY)
357 LOCVAL(LOCALE_ITLZERO,"1")
359 LOCVAL(LOCALE_IDAYLZERO)
360 LOCVAL(LOCALE_IMONLZERO)
361 LOCVAL(LOCALE_S1159)
362 LOCVAL(LOCALE_S2359)
363 LOCVAL(LOCALE_ICALENDARTYPE)
364 LOCVAL(LOCALE_IOPTIONALCALENDAR)
365 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
366 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
368 LOCVAL(LOCALE_SDAYNAME1,"Montag")
369 LOCVAL(LOCALE_SDAYNAME2,"Dienstag")
370 LOCVAL(LOCALE_SDAYNAME3,"Mittwoch")
371 LOCVAL(LOCALE_SDAYNAME4,"Donnerstag")
372 LOCVAL(LOCALE_SDAYNAME5,"Freitag")
373 LOCVAL(LOCALE_SDAYNAME6,"Sonnabend")
374 LOCVAL(LOCALE_SDAYNAME7,"Sonntag")
375 LOCVAL(LOCALE_SABBREVDAYNAME1,"Mo")
376 LOCVAL(LOCALE_SABBREVDAYNAME2,"Di")
377 LOCVAL(LOCALE_SABBREVDAYNAME3,"Mi")
378 LOCVAL(LOCALE_SABBREVDAYNAME4,"Do")
379 LOCVAL(LOCALE_SABBREVDAYNAME5,"Fr")
380 LOCVAL(LOCALE_SABBREVDAYNAME6,"Sa")
381 LOCVAL(LOCALE_SABBREVDAYNAME7,"So")
382 LOCVAL(LOCALE_SMONTHNAME1,"Januar")
383 LOCVAL(LOCALE_SMONTHNAME2,"Februar")
384 LOCVAL(LOCALE_SMONTHNAME3,"März")
385 LOCVAL(LOCALE_SMONTHNAME4,"April")
386 LOCVAL(LOCALE_SMONTHNAME5,"Mai")
387 LOCVAL(LOCALE_SMONTHNAME6,"Juni")
388 LOCVAL(LOCALE_SMONTHNAME7,"Juli")
389 LOCVAL(LOCALE_SMONTHNAME8,"August")
390 LOCVAL(LOCALE_SMONTHNAME9,"September")
391 LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
392 LOCVAL(LOCALE_SMONTHNAME11,"November")
393 LOCVAL(LOCALE_SMONTHNAME12,"Dezember")
394 LOCVAL(LOCALE_SMONTHNAME13,"")
395 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
396 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
397 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mär")
398 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
399 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mai")
400 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jun")
401 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Jul")
402 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
403 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sep")
404 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
405 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
406 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dez")
407 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
409 LOCVAL(LOCALE_SPOSITIVESIGN)
410 LOCVAL(LOCALE_SNEGATIVESIGN)
411 LOCVAL(LOCALE_IPOSSIGNPOSN)
412 LOCVAL(LOCALE_INEGSIGNPOSN)
413 LOCVAL(LOCALE_IPOSSYMPRECEDES)
414 LOCVAL(LOCALE_IPOSSEPBYSPACE)
415 LOCVAL(LOCALE_INEGSYMPRECEDES)
416 LOCVAL(LOCALE_INEGSEPBYSPACE)
418 default: found=0;break;
420 break; /* LANG(De) */
422 case LANG_Da:
423 switch (LCType) {
424 LOCVAL(LOCALE_ILANGUAGE,"6")
425 LOCVAL(LOCALE_SLANGUAGE,"Dansk")
426 LOCVAL(LOCALE_SENGLANGUAGE,"Danish")
427 LOCVAL(LOCALE_SABBREVLANGNAME,"dan")
428 LOCVAL(LOCALE_SNATIVELANGNAME,"Dansk")
429 LOCVAL(LOCALE_ICOUNTRY,"45")
430 LOCVAL(LOCALE_SCOUNTRY,"Danmark")
431 LOCVAL(LOCALE_SENGCOUNTRY,"Denmark")
432 LOCVAL(LOCALE_SABBREVCTRYNAME,"DK")
433 LOCVAL(LOCALE_SNATIVECTRYNAME,"Danmark")
434 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"6")
435 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"45")
436 /* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
437 /* LOCVAL(LOCALE_IDEFAULTANSICODEPAGE) */
438 LOCVAL(LOCALE_SLIST,";")
439 LOCVAL(LOCALE_IMEASURE,"0")
440 LOCVAL(LOCALE_SDECIMAL,",")
441 LOCVAL(LOCALE_STHOUSAND,".")
442 /* LOCVAL(LOCALE_SGROUPING) */
443 LOCVAL(LOCALE_IDIGITS,"2")
444 LOCVAL(LOCALE_ILZERO,"1")
445 /* LOCVAL(LOCALE_INEGNUMBER) */
446 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
447 LOCVAL(LOCALE_SCURRENCY,"kr")
448 /* LOCVAL(LOCALE_SINTLSYMBOL) */
449 LOCVAL(LOCALE_SMONDECIMALSEP,",")
450 LOCVAL(LOCALE_SMONTHOUSANDSEP,".")
451 /* LOCVAL(LOCALE_SMONGROUPING) */
452 LOCVAL(LOCALE_ICURRDIGITS,"2")
453 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
454 LOCVAL(LOCALE_ICURRENCY,"3")
455 LOCVAL(LOCALE_INEGCURR,"8")
456 LOCVAL(LOCALE_SDATE,".")
457 LOCVAL(LOCALE_STIME,":")
458 LOCVAL(LOCALE_SSHORTDATE,"dd/MM-yyyy")
459 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
460 /* LOCVAL(LOCALE_STIMEFORMAT) */
461 LOCVAL(LOCALE_IDATE,"1")
462 /* LOCVAL(LOCALE_ILDATE) */
463 LOCVAL(LOCALE_ITIME,"1")
464 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
465 /* LOCVAL(LOCALE_ICENTURY) */
466 LOCVAL(LOCALE_ITLZERO,"1")
467 /* LOCVAL(LOCALE_IDAYLZERO) */
468 /* LOCVAL(LOCALE_IMONLZERO) */
469 LOCVAL(LOCALE_S1159, "")
470 LOCVAL(LOCALE_S2359, "")
471 /* LOCVAL(LOCALE_ICALENDARTYPE) */
472 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
473 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
474 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
475 LOCVAL(LOCALE_SDAYNAME1,"Mandag")
476 LOCVAL(LOCALE_SDAYNAME2,"Tirsdag")
477 LOCVAL(LOCALE_SDAYNAME3,"Onsdag")
478 LOCVAL(LOCALE_SDAYNAME4,"Torsdag")
479 LOCVAL(LOCALE_SDAYNAME5,"Fredag")
480 LOCVAL(LOCALE_SDAYNAME6,"Lørdag")
481 LOCVAL(LOCALE_SDAYNAME7,"Søndag")
482 LOCVAL(LOCALE_SABBREVDAYNAME1,"Ma")
483 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ti")
484 LOCVAL(LOCALE_SABBREVDAYNAME3,"On")
485 LOCVAL(LOCALE_SABBREVDAYNAME4,"To")
486 LOCVAL(LOCALE_SABBREVDAYNAME5,"Fr")
487 LOCVAL(LOCALE_SABBREVDAYNAME6,"Lø")
488 LOCVAL(LOCALE_SABBREVDAYNAME7,"Sø")
489 LOCVAL(LOCALE_SMONTHNAME1,"Januar")
490 LOCVAL(LOCALE_SMONTHNAME2,"Februar")
491 LOCVAL(LOCALE_SMONTHNAME3,"Marts")
492 LOCVAL(LOCALE_SMONTHNAME4,"April")
493 LOCVAL(LOCALE_SMONTHNAME5,"Maj")
494 LOCVAL(LOCALE_SMONTHNAME6,"Juni")
495 LOCVAL(LOCALE_SMONTHNAME7,"Juli")
496 LOCVAL(LOCALE_SMONTHNAME8,"August")
497 LOCVAL(LOCALE_SMONTHNAME9,"September")
498 LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
499 LOCVAL(LOCALE_SMONTHNAME11,"November")
500 LOCVAL(LOCALE_SMONTHNAME12,"December")
501 LOCVAL(LOCALE_SMONTHNAME13,"")
502 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
503 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
504 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mar")
505 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
506 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Maj")
507 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jun")
508 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Jul")
509 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
510 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sep")
511 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
512 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
513 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dec")
514 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
515 LOCVAL(LOCALE_SPOSITIVESIGN, "")
516 LOCVAL(LOCALE_SNEGATIVESIGN, "-")
517 LOCVAL(LOCALE_IPOSSIGNPOSN, "3")
518 LOCVAL(LOCALE_INEGSIGNPOSN, "3")
519 LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
520 LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
521 LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
522 LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
523 default: found=0;break;
525 break; /* LANG(Da) */
527 case LANG_En:
528 switch (LCType) {
529 LOCVAL(LOCALE_ILANGUAGE,"9")
530 LOCVAL(LOCALE_SLANGUAGE,"English")
531 LOCVAL(LOCALE_SENGLANGUAGE,"English")
532 LOCVAL(LOCALE_SABBREVLANGNAME,"enu")
533 LOCVAL(LOCALE_SNATIVELANGNAME,"English")
534 LOCVAL(LOCALE_ICOUNTRY,"11")
535 LOCVAL(LOCALE_SCOUNTRY,"Deutschland")
536 LOCVAL(LOCALE_SENGCOUNTRY,"Deutschland")
537 LOCVAL(LOCALE_SABBREVCTRYNAME,"De")
538 LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland")
539 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
540 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49")
541 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"437")
542 /* Dunno
543 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
545 LOCVAL(LOCALE_SLIST,";")
546 LOCVAL(LOCALE_IMEASURE,"0")
547 LOCVAL(LOCALE_SDECIMAL,",")
548 LOCVAL(LOCALE_STHOUSAND,".")
550 LOCVAL(LOCALE_SGROUPING)
552 LOCVAL(LOCALE_IDIGITS,"2")
553 LOCVAL(LOCALE_ILZERO,"1")
555 LOCVAL(LOCALE_INEGNUMBER)
556 Is this "0123456789" ??
557 LOCVAL(LOCALE_SNATIVEDIGITS)
559 LOCVAL(LOCALE_SCURRENCY,"DM")
561 LOCVAL(LOCALE_SINTLSYMBOL)
562 LOCVAL(LOCALE_SMONDECIMALSEP)
563 LOCVAL(LOCALE_SMONTHOUSANDSEP)
564 LOCVAL(LOCALE_SMONGROUPING)
566 LOCVAL(LOCALE_ICURRDIGITS,"2")
568 LOCVAL(LOCALE_IINTLCURRDIGITS)
570 LOCVAL(LOCALE_ICURRENCY,"3")
571 LOCVAL(LOCALE_INEGCURR,"8")
572 LOCVAL(LOCALE_SDATE,".")
573 LOCVAL(LOCALE_STIME,":")
574 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
575 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
577 LOCVAL(LOCALE_STIMEFORMAT)
579 LOCVAL(LOCALE_IDATE,"1")
581 LOCVAL(LOCALE_ILDATE)
583 LOCVAL(LOCALE_ITIME,"1")
585 LOCVAL(LOCALE_ITIMEMARKPOSN)
586 LOCVAL(LOCALE_ICENTURY)
588 LOCVAL(LOCALE_ITLZERO,"1")
590 LOCVAL(LOCALE_IDAYLZERO)
591 LOCVAL(LOCALE_IMONLZERO)
592 LOCVAL(LOCALE_S1159)
593 LOCVAL(LOCALE_S2359)
594 LOCVAL(LOCALE_ICALENDARTYPE)
595 LOCVAL(LOCALE_IOPTIONALCALENDAR)
596 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
597 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
599 LOCVAL(LOCALE_SDAYNAME1,"Montag")
600 LOCVAL(LOCALE_SDAYNAME2,"Dienstag")
601 LOCVAL(LOCALE_SDAYNAME3,"Mittwoch")
602 LOCVAL(LOCALE_SDAYNAME4,"Donnerstag")
603 LOCVAL(LOCALE_SDAYNAME5,"Freitag")
604 LOCVAL(LOCALE_SDAYNAME6,"Sonnabend")
605 LOCVAL(LOCALE_SDAYNAME7,"Sonntag")
606 LOCVAL(LOCALE_SABBREVDAYNAME1,"Mo")
607 LOCVAL(LOCALE_SABBREVDAYNAME2,"Di")
608 LOCVAL(LOCALE_SABBREVDAYNAME3,"Mi")
609 LOCVAL(LOCALE_SABBREVDAYNAME4,"Do")
610 LOCVAL(LOCALE_SABBREVDAYNAME5,"Fr")
611 LOCVAL(LOCALE_SABBREVDAYNAME6,"Sa")
612 LOCVAL(LOCALE_SABBREVDAYNAME7,"So")
613 LOCVAL(LOCALE_SMONTHNAME1,"Januar")
614 LOCVAL(LOCALE_SMONTHNAME2,"Februar")
615 LOCVAL(LOCALE_SMONTHNAME3,"März")
616 LOCVAL(LOCALE_SMONTHNAME4,"April")
617 LOCVAL(LOCALE_SMONTHNAME5,"Mai")
618 LOCVAL(LOCALE_SMONTHNAME6,"Juni")
619 LOCVAL(LOCALE_SMONTHNAME7,"Juli")
620 LOCVAL(LOCALE_SMONTHNAME8,"August")
621 LOCVAL(LOCALE_SMONTHNAME9,"September")
622 LOCVAL(LOCALE_SMONTHNAME10,"Oktober")
623 LOCVAL(LOCALE_SMONTHNAME11,"November")
624 LOCVAL(LOCALE_SMONTHNAME12,"Dezember")
625 LOCVAL(LOCALE_SMONTHNAME13,"")
626 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
627 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
628 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mär")
629 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
630 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mai")
631 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jun")
632 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Jul")
633 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
634 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sep")
635 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
636 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
637 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dez")
638 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
640 LOCVAL(LOCALE_SPOSITIVESIGN)
641 LOCVAL(LOCALE_SNEGATIVESIGN)
642 LOCVAL(LOCALE_IPOSSIGNPOSN)
643 LOCVAL(LOCALE_INEGSIGNPOSN)
644 LOCVAL(LOCALE_IPOSSYMPRECEDES)
645 LOCVAL(LOCALE_IPOSSEPBYSPACE)
646 LOCVAL(LOCALE_INEGSYMPRECEDES)
647 LOCVAL(LOCALE_INEGSEPBYSPACE)
649 default: found=0;break;
651 break; /* LANG(En) */
653 case LANG_Eo:
654 switch (LCType) {
655 /* LOCVAL(LOCALE_ILANGUAGE,"9") ISO numerical ID for language TODO */
656 LOCVAL(LOCALE_SLANGUAGE,"Esperanto")
657 LOCVAL(LOCALE_SENGLANGUAGE,"Esperanto")
658 /* LOCVAL(LOCALE_SABBREVLANGNAME,"deu") */
659 LOCVAL(LOCALE_SNATIVELANGNAME,"Esperanto")
660 /* LOCVAL(LOCALE_ICOUNTRY,"49") not official in any one country */
661 /* LOCVAL(LOCALE_SCOUNTRY,"Deutschland") */
662 /* LOCVAL(LOCALE_SENGCOUNTRY,"Germany") */
663 /* LOCVAL(LOCALE_SABBREVCTRYNAME,"De") */
664 /* LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland") */
665 /* LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9") ISO ID of lang TODO */
666 /* LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49") */
667 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"3") /* is this right? TODO */
668 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"3") /* is this right? TODO */
669 LOCVAL(LOCALE_SLIST,";")
670 LOCVAL(LOCALE_IMEASURE,"0")
671 LOCVAL(LOCALE_SDECIMAL,",")
672 LOCVAL(LOCALE_STHOUSAND,".")
673 /* LOCVAL(LOCALE_SGROUPING) */
674 LOCVAL(LOCALE_IDIGITS,"2")
675 LOCVAL(LOCALE_ILZERO,"1")
676 /* LOCVAL(LOCALE_INEGNUMBER) */
677 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
678 LOCVAL(LOCALE_SCURRENCY,"NLG") /* accounting currency of UEA */
679 /* LOCVAL(LOCALE_SINTLSYMBOL) */
680 /* LOCVAL(LOCALE_SMONDECIMALSEP) */
681 /* LOCVAL(LOCALE_SMONTHOUSANDSEP) */
682 /* LOCVAL(LOCALE_SMONGROUPING) */
683 /* LOCVAL(LOCALE_ICURRDIGITS,"2") */
684 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
685 LOCVAL(LOCALE_ICURRENCY,"3")
686 LOCVAL(LOCALE_INEGCURR,"8")
687 LOCVAL(LOCALE_SDATE,".")
688 LOCVAL(LOCALE_STIME,":")
689 LOCVAL(LOCALE_SSHORTDATE,"yyyy.mm.dd")
690 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
691 /* LOCVAL(LOCALE_STIMEFORMAT) */
692 LOCVAL(LOCALE_IDATE,"1")
693 /* LOCVAL(LOCALE_ILDATE) */
694 LOCVAL(LOCALE_ITIME,"1")
695 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
696 /* LOCVAL(LOCALE_ICENTURY) */
697 LOCVAL(LOCALE_ITLZERO,"1")
698 /* LOCVAL(LOCALE_IDAYLZERO) */
699 /* LOCVAL(LOCALE_IMONLZERO) */
700 /* LOCVAL(LOCALE_S1159) */
701 /* LOCVAL(LOCALE_S2359) */
702 /* LOCVAL(LOCALE_ICALENDARTYPE) */
703 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
704 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
705 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
706 LOCVAL(LOCALE_SDAYNAME1,"lundo")
707 LOCVAL(LOCALE_SDAYNAME2,"mardo")
708 LOCVAL(LOCALE_SDAYNAME3,"merkredo")
709 LOCVAL(LOCALE_SDAYNAME4,"¼aýdo")
710 LOCVAL(LOCALE_SDAYNAME5,"vendredo")
711 LOCVAL(LOCALE_SDAYNAME6,"sabato")
712 LOCVAL(LOCALE_SDAYNAME7,"dimanæo")
713 LOCVAL(LOCALE_SABBREVDAYNAME1,"lu")
714 LOCVAL(LOCALE_SABBREVDAYNAME2,"ma")
715 LOCVAL(LOCALE_SABBREVDAYNAME3,"me")
716 LOCVAL(LOCALE_SABBREVDAYNAME4,"¼a")
717 LOCVAL(LOCALE_SABBREVDAYNAME5,"ve")
718 LOCVAL(LOCALE_SABBREVDAYNAME6,"sa")
719 LOCVAL(LOCALE_SABBREVDAYNAME7,"di")
720 LOCVAL(LOCALE_SMONTHNAME1,"januaro")
721 LOCVAL(LOCALE_SMONTHNAME2,"februaro")
722 LOCVAL(LOCALE_SMONTHNAME3,"marto")
723 LOCVAL(LOCALE_SMONTHNAME4,"aprilo")
724 LOCVAL(LOCALE_SMONTHNAME5,"majo")
725 LOCVAL(LOCALE_SMONTHNAME6,"junio")
726 LOCVAL(LOCALE_SMONTHNAME7,"julio")
727 LOCVAL(LOCALE_SMONTHNAME8,"aýgusto")
728 LOCVAL(LOCALE_SMONTHNAME9,"septembro")
729 LOCVAL(LOCALE_SMONTHNAME10,"oktobro")
730 LOCVAL(LOCALE_SMONTHNAME11,"novembro")
731 LOCVAL(LOCALE_SMONTHNAME12,"decembro")
732 LOCVAL(LOCALE_SMONTHNAME13,"")
733 LOCVAL(LOCALE_SABBREVMONTHNAME1,"jan")
734 LOCVAL(LOCALE_SABBREVMONTHNAME2,"feb")
735 LOCVAL(LOCALE_SABBREVMONTHNAME3,"mar")
736 LOCVAL(LOCALE_SABBREVMONTHNAME4,"apr")
737 LOCVAL(LOCALE_SABBREVMONTHNAME5,"maj")
738 LOCVAL(LOCALE_SABBREVMONTHNAME6,"jun")
739 LOCVAL(LOCALE_SABBREVMONTHNAME7,"jul")
740 LOCVAL(LOCALE_SABBREVMONTHNAME8,"aýg")
741 LOCVAL(LOCALE_SABBREVMONTHNAME9,"sep")
742 LOCVAL(LOCALE_SABBREVMONTHNAME10,"okt")
743 LOCVAL(LOCALE_SABBREVMONTHNAME11,"nov")
744 LOCVAL(LOCALE_SABBREVMONTHNAME12,"dec")
745 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
746 /* LOCVAL(LOCALE_SPOSITIVESIGN) */
747 /* LOCVAL(LOCALE_SNEGATIVESIGN) */
748 /* LOCVAL(LOCALE_IPOSSIGNPOSN) */
749 /* LOCVAL(LOCALE_INEGSIGNPOSN) */
750 /* LOCVAL(LOCALE_IPOSSYMPRECEDES) */
751 /* LOCVAL(LOCALE_IPOSSEPBYSPACE) */
752 /* LOCVAL(LOCALE_INEGSYMPRECEDES) */
753 /* LOCVAL(LOCALE_INEGSEPBYSPACE) */
754 default: found=0;break;
756 break; /* LANG(Eo) */
758 case LANG_Fi:
759 switch (LCType) {
760 LOCVAL(LOCALE_ILANGUAGE,"11")
761 LOCVAL(LOCALE_SLANGUAGE,"Suomi")
762 LOCVAL(LOCALE_SENGLANGUAGE,"Finnish")
763 LOCVAL(LOCALE_SABBREVLANGNAME,"fin")
764 LOCVAL(LOCALE_SNATIVELANGNAME,"suomi")
765 LOCVAL(LOCALE_ICOUNTRY,"49")
766 LOCVAL(LOCALE_SCOUNTRY,"Suomi")
767 LOCVAL(LOCALE_SENGCOUNTRY,"Finland")
768 LOCVAL(LOCALE_SABBREVCTRYNAME,"Fin")
769 LOCVAL(LOCALE_SNATIVECTRYNAME,"Suomi")
770 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"11")
771 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"358")
773 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
774 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
776 LOCVAL(LOCALE_SLIST,";")
777 LOCVAL(LOCALE_IMEASURE,"0")
778 LOCVAL(LOCALE_SDECIMAL,",")
779 LOCVAL(LOCALE_STHOUSAND,".")
781 LOCVAL(LOCALE_SGROUPING)
783 LOCVAL(LOCALE_IDIGITS,"2")
784 LOCVAL(LOCALE_ILZERO,"1")
786 LOCVAL(LOCALE_INEGNUMBER)
787 Is this "0123456789" ??
788 LOCVAL(LOCALE_SNATIVEDIGITS)
790 LOCVAL(LOCALE_SCURRENCY,"mk")
792 LOCVAL(LOCALE_SINTLSYMBOL)
793 LOCVAL(LOCALE_SMONDECIMALSEP)
794 LOCVAL(LOCALE_SMONTHOUSANDSEP)
795 LOCVAL(LOCALE_SMONGROUPING)
797 LOCVAL(LOCALE_ICURRDIGITS,"2")
799 LOCVAL(LOCALE_IINTLCURRDIGITS)
801 LOCVAL(LOCALE_ICURRENCY,"3")
802 LOCVAL(LOCALE_INEGCURR,"8")
803 LOCVAL(LOCALE_SDATE,".")
804 LOCVAL(LOCALE_STIME,":")
805 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
806 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
808 LOCVAL(LOCALE_STIMEFORMAT)
810 LOCVAL(LOCALE_IDATE,"1")
812 LOCVAL(LOCALE_ILDATE)
814 LOCVAL(LOCALE_ITIME,"1")
816 LOCVAL(LOCALE_ITIMEMARKPOSN)
817 LOCVAL(LOCALE_ICENTURY)
819 LOCVAL(LOCALE_ITLZERO,"1")
821 LOCVAL(LOCALE_IDAYLZERO)
822 LOCVAL(LOCALE_IMONLZERO)
823 LOCVAL(LOCALE_S1159)
824 LOCVAL(LOCALE_S2359)
825 LOCVAL(LOCALE_ICALENDARTYPE)
826 LOCVAL(LOCALE_IOPTIONALCALENDAR)
827 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
828 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
830 LOCVAL(LOCALE_SDAYNAME1,"maanantai")
831 LOCVAL(LOCALE_SDAYNAME2,"tiistai")
832 LOCVAL(LOCALE_SDAYNAME3,"keskiviikko")
833 LOCVAL(LOCALE_SDAYNAME4,"torstai")
834 LOCVAL(LOCALE_SDAYNAME5,"perjantai")
835 LOCVAL(LOCALE_SDAYNAME6,"lauantai")
836 LOCVAL(LOCALE_SDAYNAME7,"sunnuntai")
837 LOCVAL(LOCALE_SABBREVDAYNAME1,"Ma")
838 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ti")
839 LOCVAL(LOCALE_SABBREVDAYNAME3,"Ke")
840 LOCVAL(LOCALE_SABBREVDAYNAME4,"To")
841 LOCVAL(LOCALE_SABBREVDAYNAME5,"Pe")
842 LOCVAL(LOCALE_SABBREVDAYNAME6,"La")
843 LOCVAL(LOCALE_SABBREVDAYNAME7,"Su")
844 LOCVAL(LOCALE_SMONTHNAME1,"tammikuu")
845 LOCVAL(LOCALE_SMONTHNAME2,"helmikuu")
846 LOCVAL(LOCALE_SMONTHNAME3,"maaliskuu")
847 LOCVAL(LOCALE_SMONTHNAME4,"huhtikuu")
848 LOCVAL(LOCALE_SMONTHNAME5,"toukokuu")
849 LOCVAL(LOCALE_SMONTHNAME6,"kesäkuu")
850 LOCVAL(LOCALE_SMONTHNAME7,"heinäkuu")
851 LOCVAL(LOCALE_SMONTHNAME8,"elokuu")
852 LOCVAL(LOCALE_SMONTHNAME9,"syyskuu")
853 LOCVAL(LOCALE_SMONTHNAME10,"lokakuu")
854 LOCVAL(LOCALE_SMONTHNAME11,"marraskuu")
855 LOCVAL(LOCALE_SMONTHNAME12,"joulukuu")
856 LOCVAL(LOCALE_SMONTHNAME13,"")
857 LOCVAL(LOCALE_SABBREVMONTHNAME1,"tammi")
858 LOCVAL(LOCALE_SABBREVMONTHNAME2,"helmi")
859 LOCVAL(LOCALE_SABBREVMONTHNAME3,"maalis")
860 LOCVAL(LOCALE_SABBREVMONTHNAME4,"huhti")
861 LOCVAL(LOCALE_SABBREVMONTHNAME5,"touko")
862 LOCVAL(LOCALE_SABBREVMONTHNAME6,"kesä")
863 LOCVAL(LOCALE_SABBREVMONTHNAME7,"heinä")
864 LOCVAL(LOCALE_SABBREVMONTHNAME8,"elo")
865 LOCVAL(LOCALE_SABBREVMONTHNAME9,"syys")
866 LOCVAL(LOCALE_SABBREVMONTHNAME10,"loka")
867 LOCVAL(LOCALE_SABBREVMONTHNAME11,"marras")
868 LOCVAL(LOCALE_SABBREVMONTHNAME12,"joulu")
869 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
871 LOCVAL(LOCALE_SPOSITIVESIGN)
872 LOCVAL(LOCALE_SNEGATIVESIGN)
873 LOCVAL(LOCALE_IPOSSIGNPOSN)
874 LOCVAL(LOCALE_INEGSIGNPOSN)
875 LOCVAL(LOCALE_IPOSSYMPRECEDES)
876 LOCVAL(LOCALE_IPOSSEPBYSPACE)
877 LOCVAL(LOCALE_INEGSYMPRECEDES)
878 LOCVAL(LOCALE_INEGSEPBYSPACE)
880 default: found=0;break;
882 break; /* LANG(Fi) */
884 case LANG_It:
885 switch (LCType) {
886 LOCVAL(LOCALE_ILANGUAGE,"9")
887 LOCVAL(LOCALE_SLANGUAGE,"Italiano")
888 LOCVAL(LOCALE_SENGLANGUAGE,"Italian")
889 LOCVAL(LOCALE_SABBREVLANGNAME,"ita")
890 LOCVAL(LOCALE_SNATIVELANGNAME,"Italiano")
891 LOCVAL(LOCALE_ICOUNTRY,"39")
892 LOCVAL(LOCALE_SCOUNTRY,"Italia")
893 LOCVAL(LOCALE_SENGCOUNTRY,"Italy")
894 LOCVAL(LOCALE_SABBREVCTRYNAME,"It")
895 LOCVAL(LOCALE_SNATIVECTRYNAME,"Italia")
896 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
897 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"39")
898 /* Dunno
899 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
900 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
902 LOCVAL(LOCALE_SLIST,";")
903 LOCVAL(LOCALE_IMEASURE,"0")
904 LOCVAL(LOCALE_SDECIMAL,",")
905 LOCVAL(LOCALE_STHOUSAND,".")
907 LOCVAL(LOCALE_SGROUPING)
909 LOCVAL(LOCALE_IDIGITS,"2")
910 LOCVAL(LOCALE_ILZERO,"1")
912 LOCVAL(LOCALE_INEGNUMBER)
913 Is this "0123456789" ??
914 LOCVAL(LOCALE_SNATIVEDIGITS)
916 LOCVAL(LOCALE_SCURRENCY,"Lit.")
918 LOCVAL(LOCALE_SINTLSYMBOL)
919 LOCVAL(LOCALE_SMONDECIMALSEP)
920 LOCVAL(LOCALE_SMONTHOUSANDSEP)
921 LOCVAL(LOCALE_SMONGROUPING)
923 LOCVAL(LOCALE_ICURRDIGITS,"2")
925 LOCVAL(LOCALE_IINTLCURRDIGITS)
927 LOCVAL(LOCALE_ICURRENCY,"3")
928 LOCVAL(LOCALE_INEGCURR,"8")
929 LOCVAL(LOCALE_SDATE,".")
930 LOCVAL(LOCALE_STIME,":")
931 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
932 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
934 LOCVAL(LOCALE_STIMEFORMAT)
936 LOCVAL(LOCALE_IDATE,"1")
938 LOCVAL(LOCALE_ILDATE)
940 LOCVAL(LOCALE_ITIME,"1")
942 LOCVAL(LOCALE_ITIMEMARKPOSN)
943 LOCVAL(LOCALE_ICENTURY)
945 LOCVAL(LOCALE_ITLZERO,"1")
947 LOCVAL(LOCALE_IDAYLZERO)
948 LOCVAL(LOCALE_IMONLZERO)
949 LOCVAL(LOCALE_S1159)
950 LOCVAL(LOCALE_S2359)
951 LOCVAL(LOCALE_ICALENDARTYPE)
952 LOCVAL(LOCALE_IOPTIONALCALENDAR)
953 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
954 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
956 LOCVAL(LOCALE_SDAYNAME1,"Lunedi'")
957 LOCVAL(LOCALE_SDAYNAME2,"Martedi'")
958 LOCVAL(LOCALE_SDAYNAME3,"Mercoledi'")
959 LOCVAL(LOCALE_SDAYNAME4,"Giovedi'")
960 LOCVAL(LOCALE_SDAYNAME5,"Venerdi'")
961 LOCVAL(LOCALE_SDAYNAME6,"Sabato")
962 LOCVAL(LOCALE_SDAYNAME7,"Domenica")
963 LOCVAL(LOCALE_SABBREVDAYNAME1,"Lu")
964 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ma")
965 LOCVAL(LOCALE_SABBREVDAYNAME3,"Me")
966 LOCVAL(LOCALE_SABBREVDAYNAME4,"Gi")
967 LOCVAL(LOCALE_SABBREVDAYNAME5,"Ve")
968 LOCVAL(LOCALE_SABBREVDAYNAME6,"Sa")
969 LOCVAL(LOCALE_SABBREVDAYNAME7,"Do")
970 LOCVAL(LOCALE_SMONTHNAME1,"Gennaio")
971 LOCVAL(LOCALE_SMONTHNAME2,"Febbraio")
972 LOCVAL(LOCALE_SMONTHNAME3,"Marzo")
973 LOCVAL(LOCALE_SMONTHNAME4,"Aprile")
974 LOCVAL(LOCALE_SMONTHNAME5,"Maggio")
975 LOCVAL(LOCALE_SMONTHNAME6,"Giugno")
976 LOCVAL(LOCALE_SMONTHNAME7,"Luglio")
977 LOCVAL(LOCALE_SMONTHNAME8,"Agosto")
978 LOCVAL(LOCALE_SMONTHNAME9,"Settembre")
979 LOCVAL(LOCALE_SMONTHNAME10,"Ottobre")
980 LOCVAL(LOCALE_SMONTHNAME11,"Novembre")
981 LOCVAL(LOCALE_SMONTHNAME12,"Dicembre")
982 LOCVAL(LOCALE_SMONTHNAME13,"")
983 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Gen")
984 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
985 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mar")
986 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Apr")
987 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Mag")
988 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Giu")
989 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Lug")
990 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Ago")
991 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Set")
992 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Ott")
993 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
994 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dic")
995 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
997 LOCVAL(LOCALE_SPOSITIVESIGN)
998 LOCVAL(LOCALE_SNEGATIVESIGN)
999 LOCVAL(LOCALE_IPOSSIGNPOSN)
1000 LOCVAL(LOCALE_INEGSIGNPOSN)
1001 LOCVAL(LOCALE_IPOSSYMPRECEDES)
1002 LOCVAL(LOCALE_IPOSSEPBYSPACE)
1003 LOCVAL(LOCALE_INEGSYMPRECEDES)
1004 LOCVAL(LOCALE_INEGSEPBYSPACE)
1006 default: found=0;break;
1008 break; /* LANG(It) */
1010 case 0x0409:
1011 switch (LCType) {
1012 LOCVAL(LOCALE_ILANGUAGE, "0409")
1013 LOCVAL(LOCALE_SLANGUAGE, "English (United States)")
1014 LOCVAL(LOCALE_SENGLANGUAGE, "English")
1015 LOCVAL(LOCALE_SABBREVLANGNAME, "ENU")
1016 LOCVAL(LOCALE_SNATIVELANGNAME, "English")
1017 LOCVAL(LOCALE_ICOUNTRY, "1")
1018 LOCVAL(LOCALE_SCOUNTRY, "United States")
1019 LOCVAL(LOCALE_SENGCOUNTRY, "United States")
1020 LOCVAL(LOCALE_SABBREVCTRYNAME, "USA")
1021 LOCVAL(LOCALE_SNATIVECTRYNAME, "United States")
1022 LOCVAL(LOCALE_IDEFAULTLANGUAGE, "0409")
1023 LOCVAL(LOCALE_IDEFAULTCOUNTRY, "1")
1024 LOCVAL(LOCALE_IDEFAULTCODEPAGE, "437")
1025 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE, "1252")
1026 LOCVAL(LOCALE_SLIST, ",")
1027 LOCVAL(LOCALE_IMEASURE, "1")
1028 LOCVAL(LOCALE_SDECIMAL, ".")
1029 LOCVAL(LOCALE_STHOUSAND, ",")
1030 LOCVAL(LOCALE_SGROUPING, "3;0")
1031 LOCVAL(LOCALE_IDIGITS, "2")
1032 LOCVAL(LOCALE_ILZERO, "1")
1033 LOCVAL(LOCALE_INEGNUMBER, "1")
1034 LOCVAL(LOCALE_SNATIVEDIGITS, "0123456789")
1035 LOCVAL(LOCALE_SCURRENCY, "$")
1036 LOCVAL(LOCALE_SINTLSYMBOL, "USD")
1037 LOCVAL(LOCALE_SMONDECIMALSEP, ".")
1038 LOCVAL(LOCALE_SMONTHOUSANDSEP, ",")
1039 LOCVAL(LOCALE_SMONGROUPING, "3;0")
1040 LOCVAL(LOCALE_ICURRDIGITS, "2")
1041 LOCVAL(LOCALE_IINTLCURRDIGITS, "2")
1042 LOCVAL(LOCALE_ICURRENCY, "0")
1043 LOCVAL(LOCALE_INEGCURR, "0")
1044 LOCVAL(LOCALE_SDATE, "/")
1045 LOCVAL(LOCALE_STIME, ":")
1046 LOCVAL(LOCALE_SSHORTDATE, "M/d/yy")
1047 LOCVAL(LOCALE_SLONGDATE, "dddd, MMMM dd, yyyy")
1048 LOCVAL(LOCALE_STIMEFORMAT, "h:mm:ss tt")
1049 LOCVAL(LOCALE_IDATE, "0")
1050 LOCVAL(LOCALE_ILDATE, "0")
1051 LOCVAL(LOCALE_ITIME, "0")
1052 LOCVAL(LOCALE_ITIMEMARKPOSN, "0")
1053 LOCVAL(LOCALE_ICENTURY, "0")
1054 LOCVAL(LOCALE_ITLZERO, "0")
1055 LOCVAL(LOCALE_IDAYLZERO, "0")
1056 LOCVAL(LOCALE_IMONLZERO, "0")
1057 LOCVAL(LOCALE_S1159, "AM")
1058 LOCVAL(LOCALE_S2359, "PM")
1059 LOCVAL(LOCALE_ICALENDARTYPE, "1")
1060 LOCVAL(LOCALE_IOPTIONALCALENDAR, "0")
1061 LOCVAL(LOCALE_IFIRSTDAYOFWEEK, "6")
1062 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR, "0")
1063 LOCVAL(LOCALE_SDAYNAME1, "Monday")
1064 LOCVAL(LOCALE_SDAYNAME2, "Tuesday")
1065 LOCVAL(LOCALE_SDAYNAME3, "Wednesday")
1066 LOCVAL(LOCALE_SDAYNAME4, "Thursday")
1067 LOCVAL(LOCALE_SDAYNAME5, "Friday")
1068 LOCVAL(LOCALE_SDAYNAME6, "Saturday")
1069 LOCVAL(LOCALE_SDAYNAME7, "Sunday")
1070 LOCVAL(LOCALE_SABBREVDAYNAME1, "Mon")
1071 LOCVAL(LOCALE_SABBREVDAYNAME2, "Tue")
1072 LOCVAL(LOCALE_SABBREVDAYNAME3, "Wed")
1073 LOCVAL(LOCALE_SABBREVDAYNAME4, "Thu")
1074 LOCVAL(LOCALE_SABBREVDAYNAME5, "Fri")
1075 LOCVAL(LOCALE_SABBREVDAYNAME6, "Sat")
1076 LOCVAL(LOCALE_SABBREVDAYNAME7, "Sun")
1077 LOCVAL(LOCALE_SMONTHNAME1, "January")
1078 LOCVAL(LOCALE_SMONTHNAME2, "February")
1079 LOCVAL(LOCALE_SMONTHNAME3, "March")
1080 LOCVAL(LOCALE_SMONTHNAME4, "April")
1081 LOCVAL(LOCALE_SMONTHNAME5, "May")
1082 LOCVAL(LOCALE_SMONTHNAME6, "June")
1083 LOCVAL(LOCALE_SMONTHNAME7, "July")
1084 LOCVAL(LOCALE_SMONTHNAME8, "August")
1085 LOCVAL(LOCALE_SMONTHNAME9, "September")
1086 LOCVAL(LOCALE_SMONTHNAME10, "October")
1087 LOCVAL(LOCALE_SMONTHNAME11, "November")
1088 LOCVAL(LOCALE_SMONTHNAME12, "December")
1089 LOCVAL(LOCALE_SMONTHNAME13, "")
1090 LOCVAL(LOCALE_SABBREVMONTHNAME1, "Jan")
1091 LOCVAL(LOCALE_SABBREVMONTHNAME2, "Feb")
1092 LOCVAL(LOCALE_SABBREVMONTHNAME3, "Mar")
1093 LOCVAL(LOCALE_SABBREVMONTHNAME4, "Apr")
1094 LOCVAL(LOCALE_SABBREVMONTHNAME5, "May")
1095 LOCVAL(LOCALE_SABBREVMONTHNAME6, "Jun")
1096 LOCVAL(LOCALE_SABBREVMONTHNAME7, "Jul")
1097 LOCVAL(LOCALE_SABBREVMONTHNAME8, "Aug")
1098 LOCVAL(LOCALE_SABBREVMONTHNAME9, "Sep")
1099 LOCVAL(LOCALE_SABBREVMONTHNAME10, "Oct")
1100 LOCVAL(LOCALE_SABBREVMONTHNAME11, "Nov")
1101 LOCVAL(LOCALE_SABBREVMONTHNAME12, "Dec")
1102 LOCVAL(LOCALE_SABBREVMONTHNAME13, "")
1103 LOCVAL(LOCALE_SPOSITIVESIGN, "")
1104 LOCVAL(LOCALE_SNEGATIVESIGN, "-")
1105 LOCVAL(LOCALE_IPOSSIGNPOSN, "3")
1106 LOCVAL(LOCALE_INEGSIGNPOSN, "0")
1107 LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
1108 LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
1109 LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
1110 LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
1111 default: found=0;break;
1113 break; /* LANG(0x0409) (U.S. English) */
1115 case 0x0809:
1116 switch (LCType) {
1117 LOCVAL(LOCALE_ILANGUAGE, "0809")
1118 LOCVAL(LOCALE_SLANGUAGE, "English (United Kingdom)")
1119 LOCVAL(LOCALE_SENGLANGUAGE, "English")
1120 LOCVAL(LOCALE_SABBREVLANGNAME, "ENG")
1121 LOCVAL(LOCALE_SNATIVELANGNAME, "English")
1122 LOCVAL(LOCALE_ICOUNTRY, "44")
1123 LOCVAL(LOCALE_SCOUNTRY, "United Kingdom")
1124 LOCVAL(LOCALE_SENGCOUNTRY, "United Kingdom")
1125 LOCVAL(LOCALE_SABBREVCTRYNAME, "GBR")
1126 LOCVAL(LOCALE_SNATIVECTRYNAME, "United Kingdom")
1127 LOCVAL(LOCALE_IDEFAULTLANGUAGE, "0809")
1128 LOCVAL(LOCALE_IDEFAULTCOUNTRY, "44")
1129 LOCVAL(LOCALE_IDEFAULTCODEPAGE, "850")
1130 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE, "1252")
1131 LOCVAL(LOCALE_SLIST, ",")
1132 LOCVAL(LOCALE_IMEASURE, "0")
1133 LOCVAL(LOCALE_SDECIMAL, ".")
1134 LOCVAL(LOCALE_STHOUSAND, ",")
1135 LOCVAL(LOCALE_SGROUPING, "3;0")
1136 LOCVAL(LOCALE_IDIGITS, "2")
1137 LOCVAL(LOCALE_ILZERO, "1")
1138 LOCVAL(LOCALE_INEGNUMBER, "1")
1139 LOCVAL(LOCALE_SNATIVEDIGITS, "0123456789")
1140 LOCVAL(LOCALE_SCURRENCY, "£")
1141 LOCVAL(LOCALE_SINTLSYMBOL, "GBP")
1142 LOCVAL(LOCALE_SMONDECIMALSEP, ".")
1143 LOCVAL(LOCALE_SMONTHOUSANDSEP, ",")
1144 LOCVAL(LOCALE_SMONGROUPING, "3;0")
1145 LOCVAL(LOCALE_ICURRDIGITS, "2")
1146 LOCVAL(LOCALE_IINTLCURRDIGITS, "2")
1147 LOCVAL(LOCALE_ICURRENCY, "0")
1148 LOCVAL(LOCALE_INEGCURR, "1")
1149 LOCVAL(LOCALE_SDATE, "/")
1150 LOCVAL(LOCALE_STIME, ":")
1151 LOCVAL(LOCALE_SSHORTDATE, "dd/MM/yy")
1152 LOCVAL(LOCALE_SLONGDATE, "dd MMMM yyyy")
1153 LOCVAL(LOCALE_STIMEFORMAT, "HH:mm:ss")
1154 LOCVAL(LOCALE_IDATE, "1")
1155 LOCVAL(LOCALE_ILDATE, "1")
1156 LOCVAL(LOCALE_ITIME, "1")
1157 LOCVAL(LOCALE_ITIMEMARKPOSN, "0")
1158 LOCVAL(LOCALE_ICENTURY, "0")
1159 LOCVAL(LOCALE_ITLZERO, "1")
1160 LOCVAL(LOCALE_IDAYLZERO, "1")
1161 LOCVAL(LOCALE_IMONLZERO, "1")
1162 LOCVAL(LOCALE_S1159, "")
1163 LOCVAL(LOCALE_S2359, "")
1164 LOCVAL(LOCALE_ICALENDARTYPE, "1")
1165 LOCVAL(LOCALE_IOPTIONALCALENDAR, "0")
1166 LOCVAL(LOCALE_IFIRSTDAYOFWEEK, "0")
1167 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR, "0")
1168 LOCVAL(LOCALE_SDAYNAME1, "Monday")
1169 LOCVAL(LOCALE_SDAYNAME2, "Tuesday")
1170 LOCVAL(LOCALE_SDAYNAME3, "Wednesday")
1171 LOCVAL(LOCALE_SDAYNAME4, "Thursday")
1172 LOCVAL(LOCALE_SDAYNAME5, "Friday")
1173 LOCVAL(LOCALE_SDAYNAME6, "Saturday")
1174 LOCVAL(LOCALE_SDAYNAME7, "Sunday")
1175 LOCVAL(LOCALE_SABBREVDAYNAME1, "Mon")
1176 LOCVAL(LOCALE_SABBREVDAYNAME2, "Tue")
1177 LOCVAL(LOCALE_SABBREVDAYNAME3, "Wed")
1178 LOCVAL(LOCALE_SABBREVDAYNAME4, "Thu")
1179 LOCVAL(LOCALE_SABBREVDAYNAME5, "Fri")
1180 LOCVAL(LOCALE_SABBREVDAYNAME6, "Sat")
1181 LOCVAL(LOCALE_SABBREVDAYNAME7, "Sun")
1182 LOCVAL(LOCALE_SMONTHNAME1, "January")
1183 LOCVAL(LOCALE_SMONTHNAME2, "February")
1184 LOCVAL(LOCALE_SMONTHNAME3, "March")
1185 LOCVAL(LOCALE_SMONTHNAME4, "April")
1186 LOCVAL(LOCALE_SMONTHNAME5, "May")
1187 LOCVAL(LOCALE_SMONTHNAME6, "June")
1188 LOCVAL(LOCALE_SMONTHNAME7, "July")
1189 LOCVAL(LOCALE_SMONTHNAME8, "August")
1190 LOCVAL(LOCALE_SMONTHNAME9, "September")
1191 LOCVAL(LOCALE_SMONTHNAME10, "October")
1192 LOCVAL(LOCALE_SMONTHNAME11, "November")
1193 LOCVAL(LOCALE_SMONTHNAME12, "December")
1194 LOCVAL(LOCALE_SMONTHNAME13, "")
1195 LOCVAL(LOCALE_SABBREVMONTHNAME1, "Jan")
1196 LOCVAL(LOCALE_SABBREVMONTHNAME2, "Feb")
1197 LOCVAL(LOCALE_SABBREVMONTHNAME3, "Mar")
1198 LOCVAL(LOCALE_SABBREVMONTHNAME4, "Apr")
1199 LOCVAL(LOCALE_SABBREVMONTHNAME5, "May")
1200 LOCVAL(LOCALE_SABBREVMONTHNAME6, "Jun")
1201 LOCVAL(LOCALE_SABBREVMONTHNAME7, "Jul")
1202 LOCVAL(LOCALE_SABBREVMONTHNAME8, "Aug")
1203 LOCVAL(LOCALE_SABBREVMONTHNAME9, "Sep")
1204 LOCVAL(LOCALE_SABBREVMONTHNAME10, "Oct")
1205 LOCVAL(LOCALE_SABBREVMONTHNAME11, "Nov")
1206 LOCVAL(LOCALE_SABBREVMONTHNAME12, "Dec")
1207 LOCVAL(LOCALE_SABBREVMONTHNAME13, "")
1208 LOCVAL(LOCALE_SPOSITIVESIGN, "")
1209 LOCVAL(LOCALE_SNEGATIVESIGN, "-")
1210 LOCVAL(LOCALE_IPOSSIGNPOSN, "3")
1211 LOCVAL(LOCALE_INEGSIGNPOSN, "3")
1212 LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
1213 LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
1214 LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
1215 LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
1216 default: found=0;break;
1218 break; /* LANG(0x0809) (U.K. English) */
1220 case LANG_Ko: /* string using codepage 949 */
1221 switch (LCType) {
1222 LOCVAL(LOCALE_ILANGUAGE,"18")
1223 LOCVAL(LOCALE_SLANGUAGE,"\307\321\261\271\276\356")
1224 LOCVAL(LOCALE_SENGLANGUAGE,"Korean")
1225 LOCVAL(LOCALE_SABBREVLANGNAME,"KOR")
1226 LOCVAL(LOCALE_SNATIVELANGNAME,"\307\321\261\271\276\356")
1227 LOCVAL(LOCALE_ICOUNTRY,"82")
1228 LOCVAL(LOCALE_SCOUNTRY,"\264\353\307\321\271\316\261\271")
1229 LOCVAL(LOCALE_SENGCOUNTRY,"Korea (South)")
1230 LOCVAL(LOCALE_SABBREVCTRYNAME,"KOR")
1231 LOCVAL(LOCALE_SNATIVECTRYNAME,"\264\353\307\321\271\316\261\271")
1232 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"18")
1233 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"82")
1234 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"949")
1235 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"949")
1236 LOCVAL(LOCALE_SLIST,",")
1237 LOCVAL(LOCALE_IMEASURE,"0")
1238 LOCVAL(LOCALE_SDECIMAL,".")
1239 LOCVAL(LOCALE_STHOUSAND,",")
1240 LOCVAL(LOCALE_SGROUPING,"3;0")
1241 LOCVAL(LOCALE_IDIGITS,"2")
1242 LOCVAL(LOCALE_ILZERO,"0")
1243 LOCVAL(LOCALE_INEGNUMBER,"1")
1244 LOCVAL(LOCALE_SNATIVEDIGITS,"0123456789")
1245 LOCVAL(LOCALE_SCURRENCY,"\\")
1246 LOCVAL(LOCALE_SINTLSYMBOL,"Won")
1247 LOCVAL(LOCALE_SMONDECIMALSEP,".")
1248 LOCVAL(LOCALE_SMONTHOUSANDSEP,",")
1249 LOCVAL(LOCALE_SMONGROUPING,"3;0")
1250 LOCVAL(LOCALE_ICURRDIGITS,"2")
1251 LOCVAL(LOCALE_IINTLCURRDIGITS,"2")
1252 LOCVAL(LOCALE_ICURRENCY,"3")
1253 LOCVAL(LOCALE_INEGCURR,"8")
1254 LOCVAL(LOCALE_SDATE,"/")
1255 LOCVAL(LOCALE_STIME,":")
1256 LOCVAL(LOCALE_SSHORTDATE,"yyyy/MM/dd")
1257 LOCVAL(LOCALE_SLONGDATE,"yyyy/MM/dd")
1258 LOCVAL(LOCALE_STIMEFORMAT,"h:mm:ss tt")
1259 LOCVAL(LOCALE_IDATE,"1")
1260 LOCVAL(LOCALE_ILDATE,"1")
1261 LOCVAL(LOCALE_ITIME,"1")
1262 LOCVAL(LOCALE_ITIMEMARKPOSN,"0")
1263 LOCVAL(LOCALE_ICENTURY,"0")
1264 LOCVAL(LOCALE_ITLZERO,"0")
1265 LOCVAL(LOCALE_IDAYLZERO,"0")
1266 LOCVAL(LOCALE_IMONLZERO,"0")
1267 LOCVAL(LOCALE_S1159,"\277\300\300\374")
1268 LOCVAL(LOCALE_S2359,"\277\300\310\304")
1269 LOCVAL(LOCALE_ICALENDARTYPE,"1")
1270 /* Korean Tangun Era calendar */
1271 LOCVAL(LOCALE_IOPTIONALCALENDAR,"5")
1272 LOCVAL(LOCALE_IFIRSTDAYOFWEEK,"6")
1273 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR,"0")
1274 LOCVAL(LOCALE_SDAYNAME1,"\277\371\277\344\300\317")
1275 LOCVAL(LOCALE_SDAYNAME2,"\310\255\277\344\300\317")
1276 LOCVAL(LOCALE_SDAYNAME3,"\274\366\277\344\300\317")
1277 LOCVAL(LOCALE_SDAYNAME4,"\270\361\277\344\300\317")
1278 LOCVAL(LOCALE_SDAYNAME5,"\261\335\277\344\300\317")
1279 LOCVAL(LOCALE_SDAYNAME6,"\305\344\277\344\300\317")
1280 LOCVAL(LOCALE_SDAYNAME7,"\300\317\277\344\300\317")
1281 LOCVAL(LOCALE_SABBREVDAYNAME1,"\277\371")
1282 LOCVAL(LOCALE_SABBREVDAYNAME2,"\310\255")
1283 LOCVAL(LOCALE_SABBREVDAYNAME3,"\274\366")
1284 LOCVAL(LOCALE_SABBREVDAYNAME4,"\270\361")
1285 LOCVAL(LOCALE_SABBREVDAYNAME5,"\261\335")
1286 LOCVAL(LOCALE_SABBREVDAYNAME6,"\305\344")
1287 LOCVAL(LOCALE_SABBREVDAYNAME7,"\300\317")
1288 LOCVAL(LOCALE_SMONTHNAME1,"1\277\371")
1289 LOCVAL(LOCALE_SMONTHNAME2,"2\277\371")
1290 LOCVAL(LOCALE_SMONTHNAME3,"3\277\371")
1291 LOCVAL(LOCALE_SMONTHNAME4,"4\277\371")
1292 LOCVAL(LOCALE_SMONTHNAME5,"5\277\371")
1293 LOCVAL(LOCALE_SMONTHNAME6,"6\277\371")
1294 LOCVAL(LOCALE_SMONTHNAME7,"7\277\371")
1295 LOCVAL(LOCALE_SMONTHNAME8,"8\277\371")
1296 LOCVAL(LOCALE_SMONTHNAME9,"9\277\371")
1297 LOCVAL(LOCALE_SMONTHNAME10,"10\277\371")
1298 LOCVAL(LOCALE_SMONTHNAME11,"11\277\371")
1299 LOCVAL(LOCALE_SMONTHNAME12,"12\277\371")
1300 LOCVAL(LOCALE_SMONTHNAME13,"")
1301 LOCVAL(LOCALE_SABBREVMONTHNAME1,"1\277\371")
1302 LOCVAL(LOCALE_SABBREVMONTHNAME2,"2\277\371")
1303 LOCVAL(LOCALE_SABBREVMONTHNAME3,"3\277\371")
1304 LOCVAL(LOCALE_SABBREVMONTHNAME4,"4\277\371")
1305 LOCVAL(LOCALE_SABBREVMONTHNAME5,"5\277\371")
1306 LOCVAL(LOCALE_SABBREVMONTHNAME6,"6\277\371")
1307 LOCVAL(LOCALE_SABBREVMONTHNAME7,"7\277\371")
1308 LOCVAL(LOCALE_SABBREVMONTHNAME8,"8\277\371")
1309 LOCVAL(LOCALE_SABBREVMONTHNAME9,"9\277\371")
1310 LOCVAL(LOCALE_SABBREVMONTHNAME10,"10\277\371")
1311 LOCVAL(LOCALE_SABBREVMONTHNAME11,"11\277\371")
1312 LOCVAL(LOCALE_SABBREVMONTHNAME12,"12\277\371")
1313 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
1314 LOCVAL(LOCALE_SPOSITIVESIGN,"")
1315 LOCVAL(LOCALE_SNEGATIVESIGN,"-")
1316 LOCVAL(LOCALE_IPOSSIGNPOSN,"3")
1317 LOCVAL(LOCALE_INEGSIGNPOSN,"0")
1318 LOCVAL(LOCALE_IPOSSYMPRECEDES,"3")
1319 LOCVAL(LOCALE_IPOSSEPBYSPACE,"0")
1320 LOCVAL(LOCALE_INEGSYMPRECEDES,"3")
1321 LOCVAL(LOCALE_INEGSEPBYSPACE,"0")
1322 default: found=0;break;
1324 break; /* LANG(Ko) */
1326 case LANG_Hu:
1327 switch (LCType) {
1328 LOCVAL(LOCALE_ILANGUAGE,"9")
1329 LOCVAL(LOCALE_SLANGUAGE,"Magyar")
1330 LOCVAL(LOCALE_SENGLANGUAGE,"Hungarian")
1331 LOCVAL(LOCALE_SABBREVLANGNAME,"hun")
1332 LOCVAL(LOCALE_SNATIVELANGNAME,"Magyar")
1333 LOCVAL(LOCALE_ICOUNTRY,"36")
1334 LOCVAL(LOCALE_SCOUNTRY,"Magyarország")
1335 LOCVAL(LOCALE_SENGCOUNTRY,"Hungary")
1336 LOCVAL(LOCALE_SABBREVCTRYNAME,"Hu")
1337 LOCVAL(LOCALE_SNATIVECTRYNAME,"Magyarország")
1338 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
1339 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"36")
1340 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"852")
1341 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"852")
1342 LOCVAL(LOCALE_SLIST,";")
1343 LOCVAL(LOCALE_IMEASURE,"0")
1344 LOCVAL(LOCALE_SDECIMAL,".")
1345 LOCVAL(LOCALE_STHOUSAND,",")
1347 LOCVAL(LOCALE_SGROUPING)
1349 LOCVAL(LOCALE_IDIGITS,"2")
1350 LOCVAL(LOCALE_ILZERO,"1")
1352 LOCVAL(LOCALE_INEGNUMBER)
1353 Is this "0123456789" ??
1354 LOCVAL(LOCALE_SNATIVEDIGITS)
1356 LOCVAL(LOCALE_SCURRENCY,"Ft")
1358 LOCVAL(LOCALE_SINTLSYMBOL)
1359 LOCVAL(LOCALE_SMONDECIMALSEP)
1360 LOCVAL(LOCALE_SMONTHOUSANDSEP)
1361 LOCVAL(LOCALE_SMONGROUPING)
1363 LOCVAL(LOCALE_ICURRDIGITS,"0")
1365 LOCVAL(LOCALE_IINTLCURRDIGITS)
1367 LOCVAL(LOCALE_ICURRENCY,"3")
1368 LOCVAL(LOCALE_INEGCURR,"8")
1369 LOCVAL(LOCALE_SDATE,"/")
1370 LOCVAL(LOCALE_STIME,":")
1371 LOCVAL(LOCALE_SSHORTDATE,"yyyy.MM.dd")
1372 LOCVAL(LOCALE_SLONGDATE,"ddd, yyyy. MMMM d")
1374 LOCVAL(LOCALE_STIMEFORMAT)
1376 LOCVAL(LOCALE_IDATE,"1")
1378 LOCVAL(LOCALE_ILDATE)
1380 LOCVAL(LOCALE_ITIME,"1")
1382 LOCVAL(LOCALE_ITIMEMARKPOSN)
1383 LOCVAL(LOCALE_ICENTURY)
1385 LOCVAL(LOCALE_ITLZERO,"1")
1387 LOCVAL(LOCALE_IDAYLZERO)
1388 LOCVAL(LOCALE_IMONLZERO)
1389 LOCVAL(LOCALE_S1159)
1390 LOCVAL(LOCALE_S2359)
1391 LOCVAL(LOCALE_ICALENDARTYPE)
1392 LOCVAL(LOCALE_IOPTIONALCALENDAR)
1393 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
1394 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
1396 LOCVAL(LOCALE_SDAYNAME1,"Hétfõ")
1397 LOCVAL(LOCALE_SDAYNAME2,"Kedd")
1398 LOCVAL(LOCALE_SDAYNAME3,"Szerda")
1399 LOCVAL(LOCALE_SDAYNAME4,"Csütörtök")
1400 LOCVAL(LOCALE_SDAYNAME5,"Péntek")
1401 LOCVAL(LOCALE_SDAYNAME6,"Szombat")
1402 LOCVAL(LOCALE_SDAYNAME7,"Vasárnap")
1403 LOCVAL(LOCALE_SABBREVDAYNAME1,"Hé")
1404 LOCVAL(LOCALE_SABBREVDAYNAME2,"Ke")
1405 LOCVAL(LOCALE_SABBREVDAYNAME3,"Se")
1406 LOCVAL(LOCALE_SABBREVDAYNAME4,"Cs")
1407 LOCVAL(LOCALE_SABBREVDAYNAME5,"Pé")
1408 LOCVAL(LOCALE_SABBREVDAYNAME6,"So")
1409 LOCVAL(LOCALE_SABBREVDAYNAME7,"Va")
1410 LOCVAL(LOCALE_SMONTHNAME1,"Január")
1411 LOCVAL(LOCALE_SMONTHNAME2,"Február")
1412 LOCVAL(LOCALE_SMONTHNAME3,"Március")
1413 LOCVAL(LOCALE_SMONTHNAME4,"Április")
1414 LOCVAL(LOCALE_SMONTHNAME5,"Május")
1415 LOCVAL(LOCALE_SMONTHNAME6,"Június")
1416 LOCVAL(LOCALE_SMONTHNAME7,"Július")
1417 LOCVAL(LOCALE_SMONTHNAME8,"Augusztus")
1418 LOCVAL(LOCALE_SMONTHNAME9,"Szeptember")
1419 LOCVAL(LOCALE_SMONTHNAME10,"Október")
1420 LOCVAL(LOCALE_SMONTHNAME11,"November")
1421 LOCVAL(LOCALE_SMONTHNAME12,"December")
1422 LOCVAL(LOCALE_SMONTHNAME13,"")
1423 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Jan")
1424 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Feb")
1425 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Már")
1426 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Ápr")
1427 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Máj")
1428 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Jún")
1429 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Júl")
1430 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Aug")
1431 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Sze")
1432 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Okt")
1433 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Nov")
1434 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Dec")
1435 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
1437 LOCVAL(LOCALE_SPOSITIVESIGN)
1438 LOCVAL(LOCALE_SNEGATIVESIGN)
1439 LOCVAL(LOCALE_IPOSSIGNPOSN)
1440 LOCVAL(LOCALE_INEGSIGNPOSN)
1441 LOCVAL(LOCALE_IPOSSYMPRECEDES)
1442 LOCVAL(LOCALE_IPOSSEPBYSPACE)
1443 LOCVAL(LOCALE_INEGSYMPRECEDES)
1444 LOCVAL(LOCALE_INEGSEPBYSPACE)
1446 default: found=0;break;
1448 break; /* LANG(En) */
1450 case LANG_Pl:
1451 switch (LCType) {
1452 LOCVAL(LOCALE_ILANGUAGE,"9")
1453 LOCVAL(LOCALE_SLANGUAGE,"Polski")
1454 LOCVAL(LOCALE_SENGLANGUAGE,"Polish")
1455 LOCVAL(LOCALE_SABBREVLANGNAME, "pol")
1456 LOCVAL(LOCALE_SNATIVELANGNAME,"Polski")
1457 LOCVAL(LOCALE_ICOUNTRY,"49")
1458 LOCVAL(LOCALE_SCOUNTRY,"Polska")
1459 LOCVAL(LOCALE_SENGCOUNTRY,"Poland")
1460 LOCVAL(LOCALE_SABBREVCTRYNAME,"Pl")
1461 LOCVAL(LOCALE_SNATIVECTRYNAME,"Polska")
1462 LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9")
1463 LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49")
1464 LOCVAL(LOCALE_IDEFAULTCODEPAGE,"1252")
1465 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"1252")
1466 LOCVAL(LOCALE_SLIST,";")
1467 LOCVAL(LOCALE_IMEASURE,"0")
1468 LOCVAL(LOCALE_SDECIMAL,",")
1469 LOCVAL(LOCALE_STHOUSAND," ")
1471 LOCVAL(LOCALE_SGROUPING)
1473 LOCVAL(LOCALE_IDIGITS,"2")
1474 LOCVAL(LOCALE_ILZERO,"1")
1476 LOCVAL(LOCALE_INEGNUMBER)
1477 Is this "0123456789" ??
1478 LOCVAL(LOCALE_SNATIVEDIGITS)
1480 LOCVAL(LOCALE_SCURRENCY,"z\xB3")
1482 LOCVAL(LOCALE_SINTLSYMBOL)
1483 LOCVAL(LOCALE_SMONDECIMALSEP)
1484 LOCVAL(LOCALE_SMONTHOUSANDSEP)
1485 LOCVAL(LOCALE_SMONGROUPING)
1487 LOCVAL(LOCALE_ICURRDIGITS,"2")
1489 LOCVAL(LOCALE_IINTLCURRDIGITS)
1491 LOCVAL(LOCALE_ICURRENCY,"3")
1492 LOCVAL(LOCALE_INEGCURR,"8")
1493 LOCVAL(LOCALE_SDATE,".")
1494 LOCVAL(LOCALE_STIME,":")
1495 LOCVAL(LOCALE_SSHORTDATE,"dd.MM.yyyy")
1496 LOCVAL(LOCALE_SLONGDATE,"ddd, d. MMMM yyyy")
1498 LOCVAL(LOCALE_STIMEFORMAT)
1500 LOCVAL(LOCALE_IDATE,"1")
1502 LOCVAL(LOCALE_ILDATE)
1504 LOCVAL(LOCALE_ITIME,"1")
1506 LOCVAL(LOCALE_ITIMEMARKPOSN)
1507 LOCVAL(LOCALE_ICENTURY)
1509 LOCVAL(LOCALE_ITLZERO,"1")
1511 LOCVAL(LOCALE_IDAYLZERO)
1512 LOCVAL(LOCALE_IMONLZERO)
1513 LOCVAL(LOCALE_S1159)
1514 LOCVAL(LOCALE_S2359)
1515 LOCVAL(LOCALE_ICALENDARTYPE)
1516 LOCVAL(LOCALE_IOPTIONALCALENDAR)
1517 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
1518 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
1520 LOCVAL(LOCALE_SDAYNAME1,"Poniedzia\263ek")
1521 LOCVAL(LOCALE_SDAYNAME2,"Wtorek")
1522 LOCVAL(LOCALE_SDAYNAME3,"Sroda")
1523 LOCVAL(LOCALE_SDAYNAME4,"Czwartek")
1524 LOCVAL(LOCALE_SDAYNAME5,"Pi\xB9tek")
1525 LOCVAL(LOCALE_SDAYNAME6,"Sobota")
1526 LOCVAL(LOCALE_SDAYNAME7,"Niedziela")
1527 LOCVAL(LOCALE_SABBREVDAYNAME1,"Po")
1528 LOCVAL(LOCALE_SABBREVDAYNAME2,"Wt")
1529 LOCVAL(LOCALE_SABBREVDAYNAME3,"Sr")
1530 LOCVAL(LOCALE_SABBREVDAYNAME4,"Cz")
1531 LOCVAL(LOCALE_SABBREVDAYNAME5,"Pt")
1532 LOCVAL(LOCALE_SABBREVDAYNAME6,"So")
1533 LOCVAL(LOCALE_SABBREVDAYNAME7,"Ni")
1534 LOCVAL(LOCALE_SMONTHNAME1,"Stycze\xF1")
1535 LOCVAL(LOCALE_SMONTHNAME2,"Luty")
1536 LOCVAL(LOCALE_SMONTHNAME3,"Marzec")
1537 LOCVAL(LOCALE_SMONTHNAME4,"Kwiecie\xF1")
1538 LOCVAL(LOCALE_SMONTHNAME5,"Maj")
1539 LOCVAL(LOCALE_SMONTHNAME6,"Czerwiec")
1540 LOCVAL(LOCALE_SMONTHNAME7,"Lipiec")
1541 LOCVAL(LOCALE_SMONTHNAME8,"Sierpie\xF1")
1542 LOCVAL(LOCALE_SMONTHNAME9,"Wrzesie\xF1")
1543 LOCVAL(LOCALE_SMONTHNAME10,"Pa\237dziernik")
1544 LOCVAL(LOCALE_SMONTHNAME11,"Listapad")
1545 LOCVAL(LOCALE_SMONTHNAME12,"Grudzie\xF1")
1546 LOCVAL(LOCALE_SMONTHNAME13,"")
1547 LOCVAL(LOCALE_SABBREVMONTHNAME1,"Sty")
1548 LOCVAL(LOCALE_SABBREVMONTHNAME2,"Lut")
1549 LOCVAL(LOCALE_SABBREVMONTHNAME3,"Mar")
1550 LOCVAL(LOCALE_SABBREVMONTHNAME4,"Kwi")
1551 LOCVAL(LOCALE_SABBREVMONTHNAME5,"Maj")
1552 LOCVAL(LOCALE_SABBREVMONTHNAME6,"Cze")
1553 LOCVAL(LOCALE_SABBREVMONTHNAME7,"Lip")
1554 LOCVAL(LOCALE_SABBREVMONTHNAME8,"Sie")
1555 LOCVAL(LOCALE_SABBREVMONTHNAME9,"Wrz")
1556 LOCVAL(LOCALE_SABBREVMONTHNAME10,"Pa\x9F")
1557 LOCVAL(LOCALE_SABBREVMONTHNAME11,"Lis")
1558 LOCVAL(LOCALE_SABBREVMONTHNAME12,"Gru")
1559 LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
1561 LOCVAL(LOCALE_SPOSITIVESIGN)
1562 LOCVAL(LOCALE_SNEGATIVESIGN)
1563 LOCVAL(LOCALE_IPOSSIGNPOSN)
1564 LOCVAL(LOCALE_INEGSIGNPOSN)
1565 LOCVAL(LOCALE_IPOSSYMPRECEDES)
1566 LOCVAL(LOCALE_IPOSSEPBYSPACE)
1567 LOCVAL(LOCALE_INEGSYMPRECEDES)
1568 LOCVAL(LOCALE_INEGSEPBYSPACE)
1570 default: found=0;break;
1572 break; /* LANG(Pl) */
1574 case LANG_Po:
1575 switch (LCType) {
1576 LOCVAL(LOCALE_ILANGUAGE, "0416")
1577 LOCVAL(LOCALE_SLANGUAGE, "Portugu\352s (Brasil)")
1578 LOCVAL(LOCALE_SENGLANGUAGE, "Protuguese")
1579 LOCVAL(LOCALE_SABBREVLANGNAME, "POR")
1580 LOCVAL(LOCALE_SNATIVELANGNAME, "Portugu\352s")
1581 LOCVAL(LOCALE_ICOUNTRY, "1")
1582 LOCVAL(LOCALE_SCOUNTRY, "Brasil")
1583 LOCVAL(LOCALE_SENGCOUNTRY, "Brazil")
1584 LOCVAL(LOCALE_SABBREVCTRYNAME, "BRA")
1585 LOCVAL(LOCALE_SNATIVECTRYNAME, "Brasil")
1586 LOCVAL(LOCALE_IDEFAULTLANGUAGE, "0409")
1587 LOCVAL(LOCALE_IDEFAULTCOUNTRY, "1")
1588 LOCVAL(LOCALE_IDEFAULTCODEPAGE, "437")
1589 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE, "1252")
1590 LOCVAL(LOCALE_SLIST, ";")
1591 LOCVAL(LOCALE_IMEASURE, "1")
1592 LOCVAL(LOCALE_SDECIMAL, ",")
1593 LOCVAL(LOCALE_STHOUSAND, ".")
1594 LOCVAL(LOCALE_SGROUPING, "3;0")
1595 LOCVAL(LOCALE_IDIGITS, "2")
1596 LOCVAL(LOCALE_ILZERO, "1")
1597 LOCVAL(LOCALE_INEGNUMBER, "1")
1598 LOCVAL(LOCALE_SNATIVEDIGITS, "0123456789")
1599 LOCVAL(LOCALE_SCURRENCY, "$")
1600 LOCVAL(LOCALE_SINTLSYMBOL, "USD")
1601 LOCVAL(LOCALE_SMONDECIMALSEP, ",")
1602 LOCVAL(LOCALE_SMONTHOUSANDSEP, ".")
1603 LOCVAL(LOCALE_SMONGROUPING, "3;0")
1604 LOCVAL(LOCALE_ICURRDIGITS, "2")
1605 LOCVAL(LOCALE_IINTLCURRDIGITS, "2")
1606 LOCVAL(LOCALE_ICURRENCY, "0")
1607 LOCVAL(LOCALE_INEGCURR, "0")
1608 LOCVAL(LOCALE_SDATE, "/")
1609 LOCVAL(LOCALE_STIME, ":")
1610 LOCVAL(LOCALE_SSHORTDATE, "dd/MM/yy")
1611 LOCVAL(LOCALE_SLONGDATE, "dddd, MMMM dd, yyyy")
1612 LOCVAL(LOCALE_STIMEFORMAT, "h:mm:ss tt")
1613 LOCVAL(LOCALE_IDATE, "0")
1614 LOCVAL(LOCALE_ILDATE, "0")
1615 LOCVAL(LOCALE_ITIME, "0")
1616 LOCVAL(LOCALE_ITIMEMARKPOSN, "0")
1617 LOCVAL(LOCALE_ICENTURY, "0")
1618 LOCVAL(LOCALE_ITLZERO, "0")
1619 LOCVAL(LOCALE_IDAYLZERO, "0")
1620 LOCVAL(LOCALE_IMONLZERO, "0")
1621 LOCVAL(LOCALE_S1159, "AM")
1622 LOCVAL(LOCALE_S2359, "PM")
1623 LOCVAL(LOCALE_ICALENDARTYPE, "1")
1624 LOCVAL(LOCALE_IOPTIONALCALENDAR, "0")
1625 LOCVAL(LOCALE_IFIRSTDAYOFWEEK, "6")
1626 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR, "0")
1627 LOCVAL(LOCALE_SDAYNAME1, "Segunda")
1628 LOCVAL(LOCALE_SDAYNAME2, "Ter\347a")
1629 LOCVAL(LOCALE_SDAYNAME3, "Quarta")
1630 LOCVAL(LOCALE_SDAYNAME4, "Quinta")
1631 LOCVAL(LOCALE_SDAYNAME5, "Sexta")
1632 LOCVAL(LOCALE_SDAYNAME6, "S\341bado")
1633 LOCVAL(LOCALE_SDAYNAME7, "Domingo")
1634 LOCVAL(LOCALE_SABBREVDAYNAME1, "Seg")
1635 LOCVAL(LOCALE_SABBREVDAYNAME2, "Ter")
1636 LOCVAL(LOCALE_SABBREVDAYNAME3, "Qua")
1637 LOCVAL(LOCALE_SABBREVDAYNAME4, "Qui")
1638 LOCVAL(LOCALE_SABBREVDAYNAME5, "Sex")
1639 LOCVAL(LOCALE_SABBREVDAYNAME6, "S\341b")
1640 LOCVAL(LOCALE_SABBREVDAYNAME7, "Dom")
1641 LOCVAL(LOCALE_SMONTHNAME1, "Janeiro")
1642 LOCVAL(LOCALE_SMONTHNAME2, "Fevereiro")
1643 LOCVAL(LOCALE_SMONTHNAME3, "Mar\347o")
1644 LOCVAL(LOCALE_SMONTHNAME4, "Abril")
1645 LOCVAL(LOCALE_SMONTHNAME5, "Maio")
1646 LOCVAL(LOCALE_SMONTHNAME6, "Junho")
1647 LOCVAL(LOCALE_SMONTHNAME7, "Julho")
1648 LOCVAL(LOCALE_SMONTHNAME8, "Agosto")
1649 LOCVAL(LOCALE_SMONTHNAME9, "Setembro")
1650 LOCVAL(LOCALE_SMONTHNAME10, "Outubro")
1651 LOCVAL(LOCALE_SMONTHNAME11, "Novembro")
1652 LOCVAL(LOCALE_SMONTHNAME12, "Dezembro")
1653 LOCVAL(LOCALE_SMONTHNAME13, "")
1654 LOCVAL(LOCALE_SABBREVMONTHNAME1, "Jan")
1655 LOCVAL(LOCALE_SABBREVMONTHNAME2, "Fev")
1656 LOCVAL(LOCALE_SABBREVMONTHNAME3, "Mar")
1657 LOCVAL(LOCALE_SABBREVMONTHNAME4, "Abr")
1658 LOCVAL(LOCALE_SABBREVMONTHNAME5, "Mai")
1659 LOCVAL(LOCALE_SABBREVMONTHNAME6, "Jun")
1660 LOCVAL(LOCALE_SABBREVMONTHNAME7, "Jul")
1661 LOCVAL(LOCALE_SABBREVMONTHNAME8, "Ago")
1662 LOCVAL(LOCALE_SABBREVMONTHNAME9, "Set")
1663 LOCVAL(LOCALE_SABBREVMONTHNAME10, "Out")
1664 LOCVAL(LOCALE_SABBREVMONTHNAME11, "Nov")
1665 LOCVAL(LOCALE_SABBREVMONTHNAME12, "Dez")
1666 LOCVAL(LOCALE_SABBREVMONTHNAME13, "")
1667 LOCVAL(LOCALE_SPOSITIVESIGN, "")
1668 LOCVAL(LOCALE_SNEGATIVESIGN, "-")
1669 LOCVAL(LOCALE_IPOSSIGNPOSN, "3")
1670 LOCVAL(LOCALE_INEGSIGNPOSN, "0")
1671 LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
1672 LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
1673 LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
1674 LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
1675 default: found=0;break;
1677 break; /* LANG(Po) */
1680 /*Insert other languages here*/
1682 default:
1683 found=0;
1684 break;
1685 } /* switch */
1687 if(!found) {
1688 fprintf(stderr,"'%s' not supported for your language.\n",
1689 retString);
1690 retString = "<WINE-NLS-unknown>";
1691 /*return 0;*/
1693 if (buf)
1694 lstrcpyn32A(buf,retString,len);
1695 return strlen(retString)+1;
1698 /***********************************************************************
1699 * GetLocaleInfo32W (KERNEL32.230)
1700 * Is the last parameter really WORD for Win16?
1702 INT32 WINAPI GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len)
1704 LPSTR abuf = (LPSTR)HeapAlloc(GetProcessHeap(),0,len);
1706 INT32 n = GetLocaleInfo32A(lcid, LCType, abuf, len);
1707 if (wbuf)
1708 lstrcpynAtoW(wbuf,abuf,len);
1709 HeapFree(GetProcessHeap(),0,abuf);
1710 return n;
1713 /***********************************************************************
1714 * CompareString16 (OLE2NLS.8)
1716 UINT16 WINAPI CompareString16(DWORD lcid,DWORD fdwStyle,
1717 LPCSTR s1,DWORD l1,LPCSTR s2,DWORD l2)
1719 return (UINT16)CompareString32A(lcid,fdwStyle,s1,l1,s2,l2);
1722 /***********************************************************************
1723 * CompareString32A (KERNEL32.29)
1724 * This implementation ignores the locale
1725 * FIXME
1727 UINT32 WINAPI CompareString32A(DWORD lcid, DWORD fdwStyle,
1728 LPCSTR s1, DWORD l1, LPCSTR s2,DWORD l2)
1730 int len,ret;
1731 if(fdwStyle & NORM_IGNORENONSPACE)
1733 fprintf(stdnimp, "CompareStringA: IGNORENONSPACE not supprted\n");
1735 if(fdwStyle & NORM_IGNORESYMBOLS)
1736 fprintf(stdnimp, "CompareStringA: IGNORESYMBOLS not supported\n");
1737 /* Is strcmp defaulting to string sort or to word sort?? */
1738 /* FIXME: Handle NORM_STRINGSORT */
1739 l1 = (l1==-1)?strlen(s1):l1;
1740 l2 = (l2==-1)?strlen(s2):l2;
1741 len = l1<l2 ? l1:l2;
1742 ret = (fdwStyle & NORM_IGNORECASE) ?
1743 lstrncmpi32A(s1,s2,len) : lstrncmp32A(s1,s2,len);
1744 /* not equal, return 1 or 3 */
1745 if(ret!=0)return ret+2;
1746 /* same len, return 2 */
1747 if(l1==l2)return 2;
1748 /* the longer one is lexically greater */
1749 return (l1<l2)? 1 : 3;
1752 /***********************************************************************
1753 * CompareString32W (KERNEL32.30)
1754 * This implementation ignores the locale
1755 * FIXME
1757 UINT32 WINAPI CompareString32W(DWORD lcid, DWORD fdwStyle,
1758 LPCWSTR s1, DWORD l1, LPCWSTR s2,DWORD l2)
1760 int len,ret;
1761 if(fdwStyle & NORM_IGNORENONSPACE)
1762 fprintf(stdnimp,"CompareStringW:IGNORENONSPACE not supprted\n");
1763 if(fdwStyle & NORM_IGNORESYMBOLS)
1764 fprintf(stdnimp,"CompareStringW:IGNORESYMBOLS not supported\n");
1766 /* Is strcmp defaulting to string sort or to word sort?? */
1767 /* FIXME: Handle NORM_STRINGSORT */
1768 l1 = (l1==-1)?lstrlen32W(s1):l1;
1769 l2 = (l2==-1)?lstrlen32W(s2):l2;
1770 len = l1<l2 ? l1:l2;
1771 ret = (fdwStyle & NORM_IGNORECASE) ?
1772 lstrncmpi32W(s1,s2,len) : lstrncmp32W(s1,s2,len);
1773 /* not equal, return 1 or 3 */
1774 if(ret!=0) return ret+2;
1775 /* same len, return 2 */
1776 if(l1==l2) return 2;
1777 /* the longer one is lexically greater */
1778 return (l1<l2)? 1 : 3;
1781 /***********************************************************************
1782 * SetLocalInfoA (KERNEL32.499)
1784 BOOL16 WINAPI SetLocaleInfoA(DWORD lcid, DWORD lctype, LPCSTR data)
1786 fprintf(stdnimp,"SetLocaleInfoA(%ld,%ld,%s)\n",lcid,lctype,data);
1787 return TRUE;
1790 /***********************************************************************
1791 * IsValidLocale (KERNEL32.361)
1793 BOOL32 WINAPI IsValidLocale(LCID lcid,DWORD flags)
1795 /* we support ANY language. Well, at least say that...*/
1796 return TRUE;
1799 /***********************************************************************
1800 * EnumSystemLocales32W (KERNEL32.93)
1802 BOOL32 WINAPI EnumSystemLocales32W( LOCALE_ENUMPROC32W lpfnLocaleEnum,
1803 DWORD flags )
1805 int i;
1806 BOOL32 ret;
1807 WCHAR buffer[200];
1808 HKEY xhkey;
1810 dprintf_win32(stddeb,"EnumSystemLocales32W(%p,%08lx)\n",
1811 lpfnLocaleEnum,flags );
1812 /* see if we can reuse the Win95 registry entries.... */
1813 if (ERROR_SUCCESS==RegOpenKey32A(HKEY_LOCAL_MACHINE,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\",&xhkey)) {
1814 i=0;
1815 while (1) {
1816 if (ERROR_SUCCESS!=RegEnumKey32W(xhkey,i,buffer,sizeof(buffer)))
1817 break;
1818 if (!lpfnLocaleEnum(buffer))
1819 break;
1820 i++;
1822 RegCloseKey(xhkey);
1823 return TRUE;
1826 i=0;
1827 while (languages[i].langname!=NULL)
1829 LPWSTR cp;
1830 char xbuffer[10];
1832 sprintf(xbuffer,"%08lx",(DWORD)languages[i].langid);
1834 cp = HEAP_strdupAtoW( GetProcessHeap(), 0, xbuffer );
1835 ret = lpfnLocaleEnum(cp);
1836 HeapFree( GetProcessHeap(), 0, cp );
1837 if (!ret) break;
1838 i++;
1840 return TRUE;
1843 /***********************************************************************
1844 * EnumSystemLocales32A (KERNEL32.92)
1846 BOOL32 WINAPI EnumSystemLocales32A(LOCALE_ENUMPROC32A lpfnLocaleEnum,
1847 DWORD flags)
1849 int i;
1850 CHAR buffer[200];
1851 HKEY xhkey;
1853 dprintf_win32(stddeb,"EnumSystemLocales32A(%p,%08lx)\n",
1854 lpfnLocaleEnum,flags
1856 if (ERROR_SUCCESS==RegOpenKey32A(HKEY_LOCAL_MACHINE,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\",&xhkey)) {
1857 i=0;
1858 while (1) {
1859 if (ERROR_SUCCESS!=RegEnumKey32A(xhkey,i,buffer,sizeof(buffer)))
1860 break;
1861 if (!lpfnLocaleEnum(buffer))
1862 break;
1863 i++;
1865 RegCloseKey(xhkey);
1866 return TRUE;
1868 i=0;
1869 while (languages[i].langname!=NULL) {
1870 sprintf(buffer,"%08lx",(DWORD)languages[i].langid);
1871 if (!lpfnLocaleEnum(buffer))
1872 break;
1873 i++;
1875 return TRUE;
1878 /***********************************************************************
1879 * GetStringTypeA (OLE2NLS.7)
1881 BOOL16 WINAPI GetStringType16(LCID locale,DWORD dwInfoType,LPCSTR src,
1882 INT16 cchSrc,LPWORD chartype)
1884 return GetStringTypeEx32A(locale,dwInfoType,src,cchSrc,chartype);
1886 /***********************************************************************
1887 * GetStringTypeA (KERNEL32.277)
1889 BOOL32 WINAPI GetStringType32A(LCID locale,DWORD dwInfoType,LPCSTR src,
1890 INT32 cchSrc,LPWORD chartype)
1892 return GetStringTypeEx32A(locale,dwInfoType,src,cchSrc,chartype);
1894 /***********************************************************************
1895 * GetStringTypeExA (KERNEL32.276)
1897 BOOL32 WINAPI GetStringTypeEx32A(LCID locale,DWORD dwInfoType,LPCSTR src,
1898 INT32 cchSrc,LPWORD chartype)
1900 int i;
1902 switch (dwInfoType) {
1903 case CT_CTYPE2:
1904 fprintf(stderr,"GetStringType32A:CT_CTYPE2 not supported.\n");
1905 return FALSE;
1906 case CT_CTYPE3:
1907 fprintf(stderr,"GetStringType32A:CT_CTYPE3 not supported.\n");
1908 return FALSE;
1909 default:break;
1911 if (cchSrc==-1)
1912 cchSrc=lstrlen32A(src);
1913 for (i=0;i<cchSrc;i++) {
1914 chartype[i] = 0;
1915 if (isdigit(src[i])) chartype[i]|=C1_DIGIT;
1916 if (isalpha(src[i])) chartype[i]|=C1_ALPHA;
1917 if (islower(src[i])) chartype[i]|=C1_LOWER;
1918 if (isupper(src[i])) chartype[i]|=C1_UPPER;
1919 if (isspace(src[i])) chartype[i]|=C1_SPACE;
1920 if (ispunct(src[i])) chartype[i]|=C1_PUNCT;
1921 if (iscntrl(src[i])) chartype[i]|=C1_CNTRL;
1922 /* FIXME: isblank() is a GNU extension */
1923 /* if (isblank(src[i])) chartype[i]|=C1_BLANK; */
1924 if ((src[i] == ' ') || (src[i] == '\t')) chartype[i]|=C1_BLANK;
1925 /* C1_XDIGIT */
1927 return TRUE;
1930 /***********************************************************************
1931 * GetStringTypeW (KERNEL32.279)
1932 * Yes, this is missing LCID locale. MS fault.
1934 BOOL32 WINAPI GetStringType32W(DWORD dwInfoType,LPCWSTR src,INT32 cchSrc,
1935 LPWORD chartype)
1937 return GetStringTypeEx32W(0/*defaultlocale*/,dwInfoType,src,cchSrc,chartype);
1940 /***********************************************************************
1941 * GetStringTypeW (KERNEL32.278)
1942 * FIXME: unicode chars are assumed chars
1944 BOOL32 WINAPI GetStringTypeEx32W(LCID locale,DWORD dwInfoType,LPCWSTR src,
1945 INT32 cchSrc,LPWORD chartype)
1947 int i;
1949 switch (dwInfoType) {
1950 case CT_CTYPE2:
1951 fprintf(stderr,"GetStringType32W:CT_CTYPE2 not supported.\n");
1952 return FALSE;
1953 case CT_CTYPE3:
1954 fprintf(stderr,"GetStringType32W:CT_CTYPE3 not supported.\n");
1955 return FALSE;
1956 default:break;
1958 if (cchSrc==-1)
1959 cchSrc=lstrlen32W(src);
1960 for (i=0;i<cchSrc;i++) {
1961 chartype[i] = 0;
1962 if (isdigit(src[i])) chartype[i]|=C1_DIGIT;
1963 if (isalpha(src[i])) chartype[i]|=C1_ALPHA;
1964 if (islower(src[i])) chartype[i]|=C1_LOWER;
1965 if (isupper(src[i])) chartype[i]|=C1_UPPER;
1966 if (isspace(src[i])) chartype[i]|=C1_SPACE;
1967 if (ispunct(src[i])) chartype[i]|=C1_PUNCT;
1968 if (iscntrl(src[i])) chartype[i]|=C1_CNTRL;
1969 /* FIXME: isblank() is a GNU extension */
1970 /* if (isblank(src[i])) chartype[i]|=C1_BLANK; */
1971 if ((src[i] == ' ') || (src[i] == '\t')) chartype[i]|=C1_BLANK;
1972 /* C1_XDIGIT */
1974 return TRUE;
1977 /* VerLanguageName [VER.10] */
1978 DWORD WINAPI VerLanguageName16(UINT16 langid,LPSTR langname,UINT16 langnamelen)
1980 int i;
1981 char *buf;
1983 dprintf_ver(stddeb,"VerLanguageName(%d,%p,%d)\n",langid,langname,langnamelen);
1984 /* First, check \System\CurrentControlSet\control\Nls\Locale\<langid>
1985 * from the registry.
1987 buf=(char*)malloc(strlen("\\System\\CurrentControlSet\\control\\Nls\\Locale\\")+9);
1988 sprintf(buf,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\%08x",langid);
1989 if (ERROR_SUCCESS==RegQueryValue16(HKEY_LOCAL_MACHINE,buf,langname,(LPDWORD)&langnamelen)) {
1990 langname[langnamelen-1]='\0';
1991 return langnamelen;
1993 /* if that fails, use the interal table */
1994 for (i=0;languages[i].langid!=0;i++)
1995 if (langid==languages[i].langid)
1996 break;
1997 strncpy(langname,languages[i].langname,langnamelen);
1998 langname[langnamelen-1]='\0';
1999 return strlen(languages[i].langname);
2002 /* VerLanguageNameA [VERSION.9] */
2003 DWORD WINAPI VerLanguageName32A(UINT32 langid,LPSTR langname,
2004 UINT32 langnamelen)
2006 return VerLanguageName16(langid,langname,langnamelen);
2009 /* VerLanguageNameW [VERSION.10] */
2010 DWORD WINAPI VerLanguageName32W(UINT32 langid,LPWSTR langname,
2011 UINT32 langnamelen)
2013 int i;
2014 char buffer[80];
2015 LPWSTR keyname;
2017 /* First, check \System\CurrentControlSet\control\Nls\Locale\<langid>
2018 * from the registry.
2020 sprintf(buffer,"\\System\\CurrentControlSet\\control\\Nls\\Locale\\%08x",langid);
2021 keyname = HEAP_strdupAtoW( GetProcessHeap(), 0, buffer );
2022 if (ERROR_SUCCESS==RegQueryValue32W(HKEY_LOCAL_MACHINE,keyname,langname,(LPDWORD)&langnamelen)) {
2023 HeapFree( GetProcessHeap(), 0, keyname );
2024 return langnamelen;
2026 HeapFree( GetProcessHeap(), 0, keyname );
2027 /* if that fails, use the interal table */
2028 for (i=0;languages[i].langid!=0;i++)
2029 if (langid==languages[i].langid)
2030 break;
2031 lstrcpyAtoW( langname, languages[i].langname );
2032 return strlen(languages[i].langname); /* same as strlenW(langname); */
2036 INT32 WINAPI LCMapString32A(
2037 LCID lcid,DWORD mapflags,LPCSTR srcstr,INT32 srclen,LPSTR dststr,
2038 INT32 dstlen
2040 int i,len;
2042 fprintf(stderr,"LCMapStringA(0x%04lx,0x%08lx,%s,%d,%p,%d)\n",
2043 lcid,mapflags,srcstr,srclen,dststr,dstlen
2045 if (!dstlen || !dststr) {
2046 dststr = srcstr;
2048 if (!srclen) srclen = strlen(srcstr);
2049 if (!dstlen) dstlen = strlen(dststr);
2050 len = dstlen;
2051 if (srclen < len)
2052 len = srclen;
2053 if (mapflags & LCMAP_LOWERCASE) {
2054 for (i=0;i<len;i++)
2055 dststr[i]=tolower(srcstr[i]);
2056 mapflags &= ~LCMAP_LOWERCASE;
2058 if (mapflags)
2059 fprintf(stderr," unimplemented flags: 0x%08lx\n",mapflags);
2060 return len;
2063 /* FIXME: implement everyhting & correct */
2065 INT32 WINAPI LCMapString32W(
2066 LCID lcid,DWORD mapflags,LPCWSTR srcstr,INT32 srclen,LPWSTR dststr,
2067 INT32 dstlen
2069 int i,len;
2071 fprintf(stderr,"LCMapStringW(0x%04lx,0x%08lx,%p,%d,%p,%d)\n",
2072 lcid,mapflags,srcstr,srclen,dststr,dstlen
2074 if (!dstlen || !dststr) {
2075 dststr = srcstr;
2077 if (!srclen) srclen = lstrlen32W(srcstr);
2078 if (!dstlen) dstlen = lstrlen32W(dststr);
2079 len = dstlen;
2080 if (srclen < len)
2081 len = srclen;
2082 if (mapflags & LCMAP_LOWERCASE) {
2083 for (i=0;i<len;i++)
2084 dststr[i]=tolower(srcstr[i]);
2085 mapflags &= ~LCMAP_LOWERCASE;
2087 if (mapflags)
2088 fprintf(stderr," unimplemented flags: 0x%08lx\n",mapflags);
2089 return len;