4 * Copyright 1995 Martin von Loewis
7 /* At the moment, these are only empty stubs.
18 /***********************************************************************
19 * GetUserDefaultLCID (OLE2NLS.1)
21 DWORD
GetUserDefaultLCID()
23 /* Default sorting, neutral sublanguage */
24 switch(Options
.language
)
26 case LANG_En
: return 0x09;
27 case LANG_Es
: return 0x07; /* Just a Guess :-) */
28 case LANG_De
: return 0x07;
29 case LANG_No
: return 0x14;
38 return 0; /* Neutral language */
42 /***********************************************************************
43 * GetSystemDefaultLCID (OLE2NLS.2)
45 DWORD
GetSystemDefaultLCID()
47 return GetUserDefaultLCID();
50 /***********************************************************************
51 * GetUserDefaultLangID (OLE2NLS.3)
53 WORD
GetUserDefaultLangID()
55 return (WORD
)GetUserDefaultLCID();
58 /***********************************************************************
59 * GetSystemDefaultLangID (OLE2NLS.4)
61 WORD
GetSystemDefaultLangID()
63 return GetUserDefaultLangID();
66 /***********************************************************************
67 * GetLocaleInfoA (OLE2NLS.5)
68 * Is the last parameter really WORD for Win16?
70 int GetLocaleInfoA(DWORD lcid
,DWORD LCType
,LPSTR buf
,WORD len
)
74 dprintf_ole(stddeb
,"GetLocaleInfoA(%8lX,%8lX,%p,%4X)\n",
76 /* Wine is supporting only the default locale */
77 if(lcid
!=GetUserDefaultLCID())
79 dprintf_ole(stdnimp
,"GetLocaleInfoA: Unknown locale\n");
82 /* As an option, we could obtain the value from win.ini.
83 This would not match the Wine compile-time option.
84 Also, not all identifiers are available from win.ini */
87 /* If we are through all of this, retLen should not be zero anymore.
88 If it is, the value is not supported */
89 #define LOCVAL(type,value) if(type==LCType) \
90 {retLen=strlen(value)+1;\
93 #define UNSUPPORTED(type) if(type==lcid)retString=#type;
95 /* I really wish I would know a better way to do this */
96 UNSUPPORTED(LOCALE_ILANGUAGE
)
97 UNSUPPORTED(LOCALE_SLANGUAGE
)
98 UNSUPPORTED(LOCALE_SENGLANGUAGE
)
99 UNSUPPORTED(LOCALE_SABBREVLANGNAME
)
100 UNSUPPORTED(LOCALE_SNATIVELANGNAME
)
101 UNSUPPORTED(LOCALE_ICOUNTRY
)
102 UNSUPPORTED(LOCALE_SCOUNTRY
)
103 UNSUPPORTED(LOCALE_SENGCOUNTRY
)
104 UNSUPPORTED(LOCALE_SABBREVCTRYNAME
)
105 UNSUPPORTED(LOCALE_SNATIVECTRYNAME
)
106 UNSUPPORTED(LOCALE_IDEFAULTLANGUAGE
)
107 UNSUPPORTED(LOCALE_IDEFAULTCOUNTRY
)
108 UNSUPPORTED(LOCALE_IDEFAULTCODEPAGE
)
109 UNSUPPORTED(LOCALE_IDEFAULTANSICODEPAGE
)
110 UNSUPPORTED(LOCALE_SLIST
)
111 UNSUPPORTED(LOCALE_IMEASURE
)
112 UNSUPPORTED(LOCALE_SDECIMAL
)
113 UNSUPPORTED(LOCALE_STHOUSAND
)
114 UNSUPPORTED(LOCALE_SGROUPING
)
115 UNSUPPORTED(LOCALE_IDIGITS
)
116 UNSUPPORTED(LOCALE_ILZERO
)
117 UNSUPPORTED(LOCALE_INEGNUMBER
)
118 UNSUPPORTED(LOCALE_SNATIVEDIGITS
)
119 UNSUPPORTED(LOCALE_SCURRENCY
)
120 UNSUPPORTED(LOCALE_SINTLSYMBOL
)
121 UNSUPPORTED(LOCALE_SMONDECIMALSEP
)
122 UNSUPPORTED(LOCALE_SMONTHOUSANDSEP
)
123 UNSUPPORTED(LOCALE_SMONGROUPING
)
124 UNSUPPORTED(LOCALE_ICURRDIGITS
)
125 UNSUPPORTED(LOCALE_IINTLCURRDIGITS
)
126 UNSUPPORTED(LOCALE_ICURRENCY
)
127 UNSUPPORTED(LOCALE_INEGCURR
)
128 UNSUPPORTED(LOCALE_SDATE
)
129 UNSUPPORTED(LOCALE_STIME
)
130 UNSUPPORTED(LOCALE_SSHORTDATE
)
131 UNSUPPORTED(LOCALE_SLONGDATE
)
132 UNSUPPORTED(LOCALE_STIMEFORMAT
)
133 UNSUPPORTED(LOCALE_IDATE
)
134 UNSUPPORTED(LOCALE_ILDATE
)
135 UNSUPPORTED(LOCALE_ITIME
)
136 UNSUPPORTED(LOCALE_ITIMEMARKPOSN
)
137 UNSUPPORTED(LOCALE_ICENTURY
)
138 UNSUPPORTED(LOCALE_ITLZERO
)
139 UNSUPPORTED(LOCALE_IDAYLZERO
)
140 UNSUPPORTED(LOCALE_IMONLZERO
)
141 UNSUPPORTED(LOCALE_S1159
)
142 UNSUPPORTED(LOCALE_S2359
)
143 UNSUPPORTED(LOCALE_ICALENDARTYPE
)
144 UNSUPPORTED(LOCALE_IOPTIONALCALENDAR
)
145 UNSUPPORTED(LOCALE_IFIRSTDAYOFWEEK
)
146 UNSUPPORTED(LOCALE_IFIRSTWEEKOFYEAR
)
147 UNSUPPORTED(LOCALE_SDAYNAME1
)
148 UNSUPPORTED(LOCALE_SDAYNAME2
)
149 UNSUPPORTED(LOCALE_SDAYNAME3
)
150 UNSUPPORTED(LOCALE_SDAYNAME4
)
151 UNSUPPORTED(LOCALE_SDAYNAME5
)
152 UNSUPPORTED(LOCALE_SDAYNAME6
)
153 UNSUPPORTED(LOCALE_SDAYNAME7
)
154 UNSUPPORTED(LOCALE_SABBREVDAYNAME1
)
155 UNSUPPORTED(LOCALE_SABBREVDAYNAME2
)
156 UNSUPPORTED(LOCALE_SABBREVDAYNAME3
)
157 UNSUPPORTED(LOCALE_SABBREVDAYNAME4
)
158 UNSUPPORTED(LOCALE_SABBREVDAYNAME5
)
159 UNSUPPORTED(LOCALE_SABBREVDAYNAME6
)
160 UNSUPPORTED(LOCALE_SABBREVDAYNAME7
)
161 UNSUPPORTED(LOCALE_SMONTHNAME1
)
162 UNSUPPORTED(LOCALE_SMONTHNAME2
)
163 UNSUPPORTED(LOCALE_SMONTHNAME3
)
164 UNSUPPORTED(LOCALE_SMONTHNAME4
)
165 UNSUPPORTED(LOCALE_SMONTHNAME5
)
166 UNSUPPORTED(LOCALE_SMONTHNAME6
)
167 UNSUPPORTED(LOCALE_SMONTHNAME7
)
168 UNSUPPORTED(LOCALE_SMONTHNAME8
)
169 UNSUPPORTED(LOCALE_SMONTHNAME9
)
170 UNSUPPORTED(LOCALE_SMONTHNAME10
)
171 UNSUPPORTED(LOCALE_SMONTHNAME11
)
172 UNSUPPORTED(LOCALE_SMONTHNAME12
)
173 UNSUPPORTED(LOCALE_SMONTHNAME13
)
174 UNSUPPORTED(LOCALE_SABBREVMONTHNAME1
)
175 UNSUPPORTED(LOCALE_SABBREVMONTHNAME2
)
176 UNSUPPORTED(LOCALE_SABBREVMONTHNAME3
)
177 UNSUPPORTED(LOCALE_SABBREVMONTHNAME4
)
178 UNSUPPORTED(LOCALE_SABBREVMONTHNAME5
)
179 UNSUPPORTED(LOCALE_SABBREVMONTHNAME6
)
180 UNSUPPORTED(LOCALE_SABBREVMONTHNAME7
)
181 UNSUPPORTED(LOCALE_SABBREVMONTHNAME8
)
182 UNSUPPORTED(LOCALE_SABBREVMONTHNAME9
)
183 UNSUPPORTED(LOCALE_SABBREVMONTHNAME10
)
184 UNSUPPORTED(LOCALE_SABBREVMONTHNAME11
)
185 UNSUPPORTED(LOCALE_SABBREVMONTHNAME12
)
186 UNSUPPORTED(LOCALE_SABBREVMONTHNAME13
)
187 UNSUPPORTED(LOCALE_SPOSITIVESIGN
)
188 UNSUPPORTED(LOCALE_SNEGATIVESIGN
)
189 UNSUPPORTED(LOCALE_IPOSSIGNPOSN
)
190 UNSUPPORTED(LOCALE_INEGSIGNPOSN
)
191 UNSUPPORTED(LOCALE_IPOSSYMPRECEDES
)
192 UNSUPPORTED(LOCALE_IPOSSEPBYSPACE
)
193 UNSUPPORTED(LOCALE_INEGSYMPRECEDES
)
194 UNSUPPORTED(LOCALE_INEGSEPBYSPACE
)
196 /* Now, the language specific definitions. They don't have to be
198 switch(Options
.language
)
201 /* This definitions apply to Germany only. Users in Austria
202 or Switzerland might want to modify them */
203 LOCVAL(LOCALE_ILANGUAGE
,"9")
204 LOCVAL(LOCALE_SLANGUAGE
,"Deutsch")
205 LOCVAL(LOCALE_SENGLANGUAGE
,"German")
206 LOCVAL(LOCALE_SABBREVLANGNAME
,"deu")
207 LOCVAL(LOCALE_SNATIVELANGNAME
,"Deutsch")
208 LOCVAL(LOCALE_ICOUNTRY
,"49")
209 LOCVAL(LOCALE_SCOUNTRY
,"Deutschland")
210 LOCVAL(LOCALE_SENGCOUNTRY
,"Deutschland")
211 LOCVAL(LOCALE_SABBREVCTRYNAME
,"De")
212 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Deutschland")
213 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"9")
214 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"49")
216 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
217 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
219 LOCVAL(LOCALE_SLIST
,";")
220 LOCVAL(LOCALE_IMEASURE
,"0")
221 LOCVAL(LOCALE_SDECIMAL
,",")
222 LOCVAL(LOCALE_STHOUSAND
,".")
224 LOCVAL(LOCALE_SGROUPING)
226 LOCVAL(LOCALE_IDIGITS
,"2")
227 LOCVAL(LOCALE_ILZERO
,"1")
229 LOCVAL(LOCALE_INEGNUMBER)
230 Is this "0123456789" ??
231 LOCVAL(LOCALE_SNATIVEDIGITS)
233 LOCVAL(LOCALE_SCURRENCY
,"DM")
235 LOCVAL(LOCALE_SINTLSYMBOL)
236 LOCVAL(LOCALE_SMONDECIMALSEP)
237 LOCVAL(LOCALE_SMONTHOUSANDSEP)
238 LOCVAL(LOCALE_SMONGROUPING)
240 LOCVAL(LOCALE_ICURRDIGITS
,"2")
242 LOCVAL(LOCALE_IINTLCURRDIGITS)
244 LOCVAL(LOCALE_ICURRENCY
,"3")
245 LOCVAL(LOCALE_INEGCURR
,"8")
246 LOCVAL(LOCALE_SDATE
,".")
247 LOCVAL(LOCALE_STIME
,":")
248 LOCVAL(LOCALE_SSHORTDATE
,"dd.MM.yyyy")
249 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
251 LOCVAL(LOCALE_STIMEFORMAT)
253 LOCVAL(LOCALE_IDATE
,"1")
255 LOCVAL(LOCALE_ILDATE)
257 LOCVAL(LOCALE_ITIME
,"1")
259 LOCVAL(LOCALE_ITIMEMARKPOSN)
260 LOCVAL(LOCALE_ICENTURY)
262 LOCVAL(LOCALE_ITLZERO
,"1")
264 LOCVAL(LOCALE_IDAYLZERO)
265 LOCVAL(LOCALE_IMONLZERO)
268 LOCVAL(LOCALE_ICALENDARTYPE)
269 LOCVAL(LOCALE_IOPTIONALCALENDAR)
270 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
271 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
273 LOCVAL(LOCALE_SDAYNAME1
,"Montag")
274 LOCVAL(LOCALE_SDAYNAME2
,"Dienstag")
275 LOCVAL(LOCALE_SDAYNAME3
,"Mittwoch")
276 LOCVAL(LOCALE_SDAYNAME4
,"Donnerstag")
277 LOCVAL(LOCALE_SDAYNAME5
,"Freitag")
278 LOCVAL(LOCALE_SDAYNAME6
,"Sonnabend")
279 LOCVAL(LOCALE_SDAYNAME7
,"Sonntag")
280 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Mo")
281 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Di")
282 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Mi")
283 LOCVAL(LOCALE_SABBREVDAYNAME4
,"Do")
284 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Fr")
285 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Sa")
286 LOCVAL(LOCALE_SABBREVDAYNAME7
,"So")
287 LOCVAL(LOCALE_SMONTHNAME1
,"Januar")
288 LOCVAL(LOCALE_SMONTHNAME2
,"Februar")
289 LOCVAL(LOCALE_SMONTHNAME3
,"März")
290 LOCVAL(LOCALE_SMONTHNAME4
,"April")
291 LOCVAL(LOCALE_SMONTHNAME5
,"Mai")
292 LOCVAL(LOCALE_SMONTHNAME6
,"Juni")
293 LOCVAL(LOCALE_SMONTHNAME7
,"Juli")
294 LOCVAL(LOCALE_SMONTHNAME8
,"August")
295 LOCVAL(LOCALE_SMONTHNAME9
,"September")
296 LOCVAL(LOCALE_SMONTHNAME10
,"Oktober")
297 LOCVAL(LOCALE_SMONTHNAME11
,"November")
298 LOCVAL(LOCALE_SMONTHNAME12
,"Dezember")
299 LOCVAL(LOCALE_SMONTHNAME13
,"")
300 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Jan")
301 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
302 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mär")
303 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
304 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Mai")
305 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Jun")
306 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Jul")
307 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Aug")
308 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Sep")
309 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Okt")
310 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
311 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dez")
312 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
314 LOCVAL(LOCALE_SPOSITIVESIGN)
315 LOCVAL(LOCALE_SNEGATIVESIGN)
316 LOCVAL(LOCALE_IPOSSIGNPOSN)
317 LOCVAL(LOCALE_INEGSIGNPOSN)
318 LOCVAL(LOCALE_IPOSSYMPRECEDES)
319 LOCVAL(LOCALE_IPOSSEPBYSPACE)
320 LOCVAL(LOCALE_INEGSYMPRECEDES)
321 LOCVAL(LOCALE_INEGSEPBYSPACE)
323 break; /* LANG(De) */
326 /* LOCVAL(LOCALE_ILANGUAGE,"9") */
327 LOCVAL(LOCALE_SLANGUAGE
,"Dansk")
328 LOCVAL(LOCALE_SENGLANGUAGE
,"Danish")
329 LOCVAL(LOCALE_SABBREVLANGNAME
,"dan")
330 LOCVAL(LOCALE_SNATIVELANGNAME
,"Dansk")
331 LOCVAL(LOCALE_ICOUNTRY
,"45")
332 LOCVAL(LOCALE_SCOUNTRY
,"Danmark")
333 LOCVAL(LOCALE_SENGCOUNTRY
,"Denmark")
334 LOCVAL(LOCALE_SABBREVCTRYNAME
,"Da")
335 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Danmark")
336 /* LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9") */
337 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"45")
338 /* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
339 /* LOCVAL(LOCALE_IDEFAULTANSICODEPAGE) */
340 LOCVAL(LOCALE_SLIST
,";")
341 LOCVAL(LOCALE_IMEASURE
,"0")
342 LOCVAL(LOCALE_SDECIMAL
,",")
343 LOCVAL(LOCALE_STHOUSAND
,".")
344 /* LOCVAL(LOCALE_SGROUPING) */
345 LOCVAL(LOCALE_IDIGITS
,"2")
346 LOCVAL(LOCALE_ILZERO
,"1")
347 /* LOCVAL(LOCALE_INEGNUMBER) */
348 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
349 LOCVAL(LOCALE_SCURRENCY
,"kr")
350 /* LOCVAL(LOCALE_SINTLSYMBOL) */
351 LOCVAL(LOCALE_SMONDECIMALSEP
,",")
352 LOCVAL(LOCALE_SMONTHOUSANDSEP
,".")
353 /* LOCVAL(LOCALE_SMONGROUPING) */
354 LOCVAL(LOCALE_ICURRDIGITS
,"2")
355 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
356 LOCVAL(LOCALE_ICURRENCY
,"3")
357 LOCVAL(LOCALE_INEGCURR
,"8")
358 LOCVAL(LOCALE_SDATE
,".")
359 LOCVAL(LOCALE_STIME
,":")
360 LOCVAL(LOCALE_SSHORTDATE
,"dd/MM-yyyy")
361 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
362 /* LOCVAL(LOCALE_STIMEFORMAT) */
363 LOCVAL(LOCALE_IDATE
,"1")
364 /* LOCVAL(LOCALE_ILDATE) */
365 LOCVAL(LOCALE_ITIME
,"1")
366 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
367 /* LOCVAL(LOCALE_ICENTURY) */
368 LOCVAL(LOCALE_ITLZERO
,"1")
369 /* LOCVAL(LOCALE_IDAYLZERO) */
370 /* LOCVAL(LOCALE_IMONLZERO) */
371 /* LOCVAL(LOCALE_S1159) */
372 /* LOCVAL(LOCALE_S2359) */
373 /* LOCVAL(LOCALE_ICALENDARTYPE) */
374 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
375 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
376 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
377 LOCVAL(LOCALE_SDAYNAME1
,"Mandag")
378 LOCVAL(LOCALE_SDAYNAME2
,"Tirsdag")
379 LOCVAL(LOCALE_SDAYNAME3
,"Onsdag")
380 LOCVAL(LOCALE_SDAYNAME4
,"Torsdag")
381 LOCVAL(LOCALE_SDAYNAME5
,"Fredag")
382 LOCVAL(LOCALE_SDAYNAME6
,"Lørdag")
383 LOCVAL(LOCALE_SDAYNAME7
,"Søndag")
384 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Ma")
385 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ti")
386 LOCVAL(LOCALE_SABBREVDAYNAME3
,"On")
387 LOCVAL(LOCALE_SABBREVDAYNAME4
,"To")
388 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Fr")
389 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Lø")
390 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Sø")
391 LOCVAL(LOCALE_SMONTHNAME1
,"Januar")
392 LOCVAL(LOCALE_SMONTHNAME2
,"Februar")
393 LOCVAL(LOCALE_SMONTHNAME3
,"Marts")
394 LOCVAL(LOCALE_SMONTHNAME4
,"April")
395 LOCVAL(LOCALE_SMONTHNAME5
,"Maj")
396 LOCVAL(LOCALE_SMONTHNAME6
,"Juni")
397 LOCVAL(LOCALE_SMONTHNAME7
,"Juli")
398 LOCVAL(LOCALE_SMONTHNAME8
,"August")
399 LOCVAL(LOCALE_SMONTHNAME9
,"September")
400 LOCVAL(LOCALE_SMONTHNAME10
,"Oktober")
401 LOCVAL(LOCALE_SMONTHNAME11
,"November")
402 LOCVAL(LOCALE_SMONTHNAME12
,"December")
403 LOCVAL(LOCALE_SMONTHNAME13
,"")
404 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Jan")
405 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
406 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mar")
407 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
408 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Maj")
409 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Jun")
410 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Jul")
411 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Aug")
412 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Sep")
413 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Okt")
414 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
415 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dec")
416 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
417 /* LOCVAL(LOCALE_SPOSITIVESIGN) */
418 /* LOCVAL(LOCALE_SNEGATIVESIGN) */
419 /* LOCVAL(LOCALE_IPOSSIGNPOSN) */
420 /* LOCVAL(LOCALE_INEGSIGNPOSN) */
421 /* LOCVAL(LOCALE_IPOSSYMPRECEDES) */
422 /* LOCVAL(LOCALE_IPOSSEPBYSPACE) */
423 /* LOCVAL(LOCALE_INEGSYMPRECEDES) */
424 /* LOCVAL(LOCALE_INEGSEPBYSPACE) */
425 break; /* LANG(Da) */
428 /* LOCVAL(LOCALE_ILANGUAGE,"9") ISO numerical ID for language TODO */
429 LOCVAL(LOCALE_SLANGUAGE
,"Esperanto")
430 LOCVAL(LOCALE_SENGLANGUAGE
,"Esperanto")
431 /* LOCVAL(LOCALE_SABBREVLANGNAME,"deu") */
432 LOCVAL(LOCALE_SNATIVELANGNAME
,"Esperanto")
433 /* LOCVAL(LOCALE_ICOUNTRY,"49") not official in any one country */
434 /* LOCVAL(LOCALE_SCOUNTRY,"Deutschland") */
435 /* LOCVAL(LOCALE_SENGCOUNTRY,"Germany") */
436 /* LOCVAL(LOCALE_SABBREVCTRYNAME,"De") */
437 /* LOCVAL(LOCALE_SNATIVECTRYNAME,"Deutschland") */
438 /* LOCVAL(LOCALE_IDEFAULTLANGUAGE,"9") ISO ID of lang TODO */
439 /* LOCVAL(LOCALE_IDEFAULTCOUNTRY,"49") */
440 LOCVAL(LOCALE_IDEFAULTCODEPAGE
,3) /* is this right? TODO */
441 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE
,3) /* is this right? TODO */
442 LOCVAL(LOCALE_SLIST
,";")
443 LOCVAL(LOCALE_IMEASURE
,"0")
444 LOCVAL(LOCALE_SDECIMAL
,",")
445 LOCVAL(LOCALE_STHOUSAND
,".")
446 /* LOCVAL(LOCALE_SGROUPING) */
447 LOCVAL(LOCALE_IDIGITS
,"2")
448 LOCVAL(LOCALE_ILZERO
,"1")
449 /* LOCVAL(LOCALE_INEGNUMBER) */
450 /* LOCVAL(LOCALE_SNATIVEDIGITS) */
451 LOCVAL(LOCALE_SCURRENCY
,"NLG") /* accounting currency of UEA */
452 /* LOCVAL(LOCALE_SINTLSYMBOL) */
453 /* LOCVAL(LOCALE_SMONDECIMALSEP) */
454 /* LOCVAL(LOCALE_SMONTHOUSANDSEP) */
455 /* LOCVAL(LOCALE_SMONGROUPING) */
456 /* LOCVAL(LOCALE_ICURRDIGITS,"2") */
457 /* LOCVAL(LOCALE_IINTLCURRDIGITS) */
458 LOCVAL(LOCALE_ICURRENCY
,"3")
459 LOCVAL(LOCALE_INEGCURR
,"8")
460 LOCVAL(LOCALE_SDATE
,".")
461 LOCVAL(LOCALE_STIME
,":")
462 LOCVAL(LOCALE_SSHORTDATE
,"yyyy.mm.dd")
463 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
464 /* LOCVAL(LOCALE_STIMEFORMAT) */
465 LOCVAL(LOCALE_IDATE
,"1")
466 /* LOCVAL(LOCALE_ILDATE) */
467 LOCVAL(LOCALE_ITIME
,"1")
468 /* LOCVAL(LOCALE_ITIMEMARKPOSN) */
469 /* LOCVAL(LOCALE_ICENTURY) */
470 LOCVAL(LOCALE_ITLZERO
,"1")
471 /* LOCVAL(LOCALE_IDAYLZERO) */
472 /* LOCVAL(LOCALE_IMONLZERO) */
473 /* LOCVAL(LOCALE_S1159) */
474 /* LOCVAL(LOCALE_S2359) */
475 /* LOCVAL(LOCALE_ICALENDARTYPE) */
476 /* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
477 /* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
478 /* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
479 LOCVAL(LOCALE_SDAYNAME1
,"lundo")
480 LOCVAL(LOCALE_SDAYNAME2
,"mardo")
481 LOCVAL(LOCALE_SDAYNAME3
,"merkredo")
482 LOCVAL(LOCALE_SDAYNAME4
,"¼aýdo")
483 LOCVAL(LOCALE_SDAYNAME5
,"vendredo")
484 LOCVAL(LOCALE_SDAYNAME6
,"sabato")
485 LOCVAL(LOCALE_SDAYNAME7
,"dimanæo")
486 LOCVAL(LOCALE_SABBREVDAYNAME1
,"lu")
487 LOCVAL(LOCALE_SABBREVDAYNAME2
,"ma")
488 LOCVAL(LOCALE_SABBREVDAYNAME3
,"me")
489 LOCVAL(LOCALE_SABBREVDAYNAME4
,"¼a")
490 LOCVAL(LOCALE_SABBREVDAYNAME5
,"ve")
491 LOCVAL(LOCALE_SABBREVDAYNAME6
,"sa")
492 LOCVAL(LOCALE_SABBREVDAYNAME7
,"di")
493 LOCVAL(LOCALE_SMONTHNAME1
,"januaro")
494 LOCVAL(LOCALE_SMONTHNAME2
,"februaro")
495 LOCVAL(LOCALE_SMONTHNAME3
,"marto")
496 LOCVAL(LOCALE_SMONTHNAME4
,"aprilo")
497 LOCVAL(LOCALE_SMONTHNAME5
,"majo")
498 LOCVAL(LOCALE_SMONTHNAME6
,"junio")
499 LOCVAL(LOCALE_SMONTHNAME7
,"julio")
500 LOCVAL(LOCALE_SMONTHNAME8
,"aýgusto")
501 LOCVAL(LOCALE_SMONTHNAME9
,"septembro")
502 LOCVAL(LOCALE_SMONTHNAME10
,"oktobro")
503 LOCVAL(LOCALE_SMONTHNAME11
,"novembro")
504 LOCVAL(LOCALE_SMONTHNAME12
,"decembro")
505 LOCVAL(LOCALE_SMONTHNAME13
,"")
506 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"jan")
507 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"feb")
508 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"mar")
509 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"apr")
510 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"maj")
511 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"jun")
512 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"jul")
513 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"aýg")
514 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"sep")
515 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"okt")
516 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"nov")
517 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"dec")
518 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
519 /* LOCVAL(LOCALE_SPOSITIVESIGN) */
520 /* LOCVAL(LOCALE_SNEGATIVESIGN) */
521 /* LOCVAL(LOCALE_IPOSSIGNPOSN) */
522 /* LOCVAL(LOCALE_INEGSIGNPOSN) */
523 /* LOCVAL(LOCALE_IPOSSYMPRECEDES) */
524 /* LOCVAL(LOCALE_IPOSSEPBYSPACE) */
525 /* LOCVAL(LOCALE_INEGSYMPRECEDES) */
526 /* LOCVAL(LOCALE_INEGSEPBYSPACE) */
527 break; /* LANG(Eo) */
530 LOCVAL(LOCALE_ILANGUAGE
,"9")
531 LOCVAL(LOCALE_SLANGUAGE
,"Italiano")
532 LOCVAL(LOCALE_SENGLANGUAGE
,"Italian")
533 LOCVAL(LOCALE_SABBREVLANGNAME
,"ita")
534 LOCVAL(LOCALE_SNATIVELANGNAME
,"Italiano")
535 LOCVAL(LOCALE_ICOUNTRY
,"39")
536 LOCVAL(LOCALE_SCOUNTRY
,"Italia")
537 LOCVAL(LOCALE_SENGCOUNTRY
,"Italy")
538 LOCVAL(LOCALE_SABBREVCTRYNAME
,"It")
539 LOCVAL(LOCALE_SNATIVECTRYNAME
,"Italia")
540 LOCVAL(LOCALE_IDEFAULTLANGUAGE
,"9")
541 LOCVAL(LOCALE_IDEFAULTCOUNTRY
,"39")
543 LOCVAL(LOCALE_IDEFAULTCODEPAGE)
544 LOCVAL(LOCALE_IDEFAULTANSICODEPAGE)
546 LOCVAL(LOCALE_SLIST
,";")
547 LOCVAL(LOCALE_IMEASURE
,"0")
548 LOCVAL(LOCALE_SDECIMAL
,",")
549 LOCVAL(LOCALE_STHOUSAND
,".")
551 LOCVAL(LOCALE_SGROUPING)
553 LOCVAL(LOCALE_IDIGITS
,"2")
554 LOCVAL(LOCALE_ILZERO
,"1")
556 LOCVAL(LOCALE_INEGNUMBER)
557 Is this "0123456789" ??
558 LOCVAL(LOCALE_SNATIVEDIGITS)
560 LOCVAL(LOCALE_SCURRENCY
,"Lit.")
562 LOCVAL(LOCALE_SINTLSYMBOL)
563 LOCVAL(LOCALE_SMONDECIMALSEP)
564 LOCVAL(LOCALE_SMONTHOUSANDSEP)
565 LOCVAL(LOCALE_SMONGROUPING)
567 LOCVAL(LOCALE_ICURRDIGITS
,"2")
569 LOCVAL(LOCALE_IINTLCURRDIGITS)
571 LOCVAL(LOCALE_ICURRENCY
,"3")
572 LOCVAL(LOCALE_INEGCURR
,"8")
573 LOCVAL(LOCALE_SDATE
,".")
574 LOCVAL(LOCALE_STIME
,":")
575 LOCVAL(LOCALE_SSHORTDATE
,"dd.MM.yyyy")
576 LOCVAL(LOCALE_SLONGDATE
,"ddd, d. MMMM yyyy")
578 LOCVAL(LOCALE_STIMEFORMAT)
580 LOCVAL(LOCALE_IDATE
,"1")
582 LOCVAL(LOCALE_ILDATE)
584 LOCVAL(LOCALE_ITIME
,"1")
586 LOCVAL(LOCALE_ITIMEMARKPOSN)
587 LOCVAL(LOCALE_ICENTURY)
589 LOCVAL(LOCALE_ITLZERO
,"1")
591 LOCVAL(LOCALE_IDAYLZERO)
592 LOCVAL(LOCALE_IMONLZERO)
595 LOCVAL(LOCALE_ICALENDARTYPE)
596 LOCVAL(LOCALE_IOPTIONALCALENDAR)
597 LOCVAL(LOCALE_IFIRSTDAYOFWEEK)
598 LOCVAL(LOCALE_IFIRSTWEEKOFYEAR)
600 LOCVAL(LOCALE_SDAYNAME1
,"Lunedi'")
601 LOCVAL(LOCALE_SDAYNAME2
,"Martedi'")
602 LOCVAL(LOCALE_SDAYNAME3
,"Mercoledi'")
603 LOCVAL(LOCALE_SDAYNAME4
,"Giovedi'")
604 LOCVAL(LOCALE_SDAYNAME5
,"Venerdi'")
605 LOCVAL(LOCALE_SDAYNAME6
,"Sabato")
606 LOCVAL(LOCALE_SDAYNAME7
,"Domenica")
607 LOCVAL(LOCALE_SABBREVDAYNAME1
,"Lu")
608 LOCVAL(LOCALE_SABBREVDAYNAME2
,"Ma")
609 LOCVAL(LOCALE_SABBREVDAYNAME3
,"Me")
610 LOCVAL(LOCALE_SABBREVDAYNAME4
,"Gi")
611 LOCVAL(LOCALE_SABBREVDAYNAME5
,"Ve")
612 LOCVAL(LOCALE_SABBREVDAYNAME6
,"Sa")
613 LOCVAL(LOCALE_SABBREVDAYNAME7
,"Do")
614 LOCVAL(LOCALE_SMONTHNAME1
,"Gennaio")
615 LOCVAL(LOCALE_SMONTHNAME2
,"Febbraio")
616 LOCVAL(LOCALE_SMONTHNAME3
,"Marzo")
617 LOCVAL(LOCALE_SMONTHNAME4
,"Aprile")
618 LOCVAL(LOCALE_SMONTHNAME5
,"Maggio")
619 LOCVAL(LOCALE_SMONTHNAME6
,"Giugno")
620 LOCVAL(LOCALE_SMONTHNAME7
,"Luglio")
621 LOCVAL(LOCALE_SMONTHNAME8
,"Agosto")
622 LOCVAL(LOCALE_SMONTHNAME9
,"Settembre")
623 LOCVAL(LOCALE_SMONTHNAME10
,"Ottobre")
624 LOCVAL(LOCALE_SMONTHNAME11
,"Novembre")
625 LOCVAL(LOCALE_SMONTHNAME12
,"Dicembre")
626 LOCVAL(LOCALE_SMONTHNAME13
,"")
627 LOCVAL(LOCALE_SABBREVMONTHNAME1
,"Gen")
628 LOCVAL(LOCALE_SABBREVMONTHNAME2
,"Feb")
629 LOCVAL(LOCALE_SABBREVMONTHNAME3
,"Mar")
630 LOCVAL(LOCALE_SABBREVMONTHNAME4
,"Apr")
631 LOCVAL(LOCALE_SABBREVMONTHNAME5
,"Mag")
632 LOCVAL(LOCALE_SABBREVMONTHNAME6
,"Giu")
633 LOCVAL(LOCALE_SABBREVMONTHNAME7
,"Lug")
634 LOCVAL(LOCALE_SABBREVMONTHNAME8
,"Ago")
635 LOCVAL(LOCALE_SABBREVMONTHNAME9
,"Set")
636 LOCVAL(LOCALE_SABBREVMONTHNAME10
,"Ott")
637 LOCVAL(LOCALE_SABBREVMONTHNAME11
,"Nov")
638 LOCVAL(LOCALE_SABBREVMONTHNAME12
,"Dic")
639 LOCVAL(LOCALE_SABBREVMONTHNAME13
,"")
641 LOCVAL(LOCALE_SPOSITIVESIGN)
642 LOCVAL(LOCALE_SNEGATIVESIGN)
643 LOCVAL(LOCALE_IPOSSIGNPOSN)
644 LOCVAL(LOCALE_INEGSIGNPOSN)
645 LOCVAL(LOCALE_IPOSSYMPRECEDES)
646 LOCVAL(LOCALE_IPOSSEPBYSPACE)
647 LOCVAL(LOCALE_INEGSYMPRECEDES)
648 LOCVAL(LOCALE_INEGSEPBYSPACE)
650 break; /* LANG(It) */
653 /*Insert other languages here*/
661 if(!retString
)fprintf(stderr
,"Unkown LC type %lX\n",LCType
);
662 else fprintf(stderr
,"'%s' not supported for your language.\n",
667 if(retLen
>len
)retLen
=len
;
668 lstrcpyn32A(buf
,retString
,len
);
673 /***********************************************************************
674 * CompareStringA (OLE2NLS.8)
675 * This implementation ignores the locale, and trusts in libc
677 int CompareStringA(DWORD lcid
, DWORD fdwStyle
,
678 char *s1
, int l1
, char *s2
,int l2
)
681 if(fdwStyle
& NORM_IGNORENONSPACE
)
683 fprintf(stdnimp
, "CompareStringA: IGNORENONSPACE not supprted\n");
685 if(fdwStyle
& NORM_IGNORESYMBOLS
)
686 fprintf(stdnimp
, "CompareStringA: IGNORESYMBOLS not supported\n");
687 /* Is strcmp defaulting to string sort or to word sort?? */
688 /* FIXME: Handle NORM_STRINGSORT */
689 l1
= (l1
==-1)?strlen(s1
):l1
;
690 l2
= (l2
==-1)?strlen(s2
):l2
;
692 ret
= (fdwStyle
& NORM_IGNORECASE
) ?
693 lstrncmpi32A(s1
,s2
,len
) : lstrncmp32A(s1
,s2
,len
);
694 /* not equal, return 1 or 3 */
695 if(ret
!=0)return ret
+2;
696 /* same len, return 2 */
698 /* the longer one is lexically greater */
699 return (l1
<l2
)? 1 : 3;
702 /***********************************************************************
703 * SetLocalInfoA (KERNEL32.499)
705 BOOL
SetLocaleInfoA(DWORD lcid
, DWORD lctype
, LPCSTR data
) {
706 fprintf(stdnimp
,"SetLocaleInfoA(%ld,%ld,%s)\n",lcid
,lctype
,data
);