5259089f56b2abf026600c9a29a6719fff162815
[sdk] / compiler / bootstrap / ecere / bootstrap / i18n.c
1 /* Code generated from eC source file: i18n.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #include <stdint.h>
39 #include <sys/types.h>
40 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__moduleMaps;
41
42 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
43
44 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
45
46 struct __ecereNameSpace__ecere__sys__OldList
47 {
48 void *  first;
49 void *  last;
50 int count;
51 unsigned int offset;
52 unsigned int circ;
53 } __attribute__ ((gcc_struct));
54
55 struct __ecereNameSpace__ecere__sys__BTNode;
56
57 struct __ecereNameSpace__ecere__com__DataValue
58 {
59 union
60 {
61 char c;
62 unsigned char uc;
63 short s;
64 unsigned short us;
65 int i;
66 unsigned int ui;
67 void *  p;
68 float f;
69 double d;
70 long long i64;
71 uint64 ui64;
72 } __attribute__ ((gcc_struct)) __anon1;
73 } __attribute__ ((gcc_struct));
74
75 struct __ecereNameSpace__ecere__com__SerialBuffer
76 {
77 unsigned char *  _buffer;
78 unsigned int count;
79 unsigned int _size;
80 unsigned int pos;
81 } __attribute__ ((gcc_struct));
82
83 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
84
85 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
86
87 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
88
89 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
90
91 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
92
93 struct __ecereNameSpace__ecere__sys__File
94 {
95 void *  input;
96 void *  output;
97 } __attribute__ ((gcc_struct));
98
99 extern char *  __ecereNameSpace__ecere__sys__GetEnvironment(const char *  envName, char *  envValue, int max);
100
101 extern char *  strcpy(char * , const char * );
102
103 extern char *  strstr(const char * , const char * );
104
105 extern int strcasecmp(const char * , const char * );
106
107 extern char *  strchr(const char * , int);
108
109 extern int sprintf(char * , const char * , ...);
110
111 struct __ecereNameSpace__ecere__com__IteratorPointer;
112
113 extern int printf(const char * , ...);
114
115 struct __ecereNameSpace__ecere__com__GlobalFunction;
116
117 struct __ecereNameSpace__ecere__com__Class;
118
119 struct __ecereNameSpace__ecere__com__Instance
120 {
121 void * *  _vTbl;
122 struct __ecereNameSpace__ecere__com__Class * _class;
123 int _refCount;
124 } __attribute__ ((gcc_struct));
125
126 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
127
128 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
129
130 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
131
132 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
133
134 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
135
136 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(const char *  fileName, int mode);
137
138 struct __ecereNameSpace__ecere__com__MapIterator
139 {
140 struct __ecereNameSpace__ecere__com__Instance * container;
141 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
142 } __attribute__ ((gcc_struct));
143
144 struct __ecereNameSpace__ecere__com__Iterator
145 {
146 struct __ecereNameSpace__ecere__com__Instance * container;
147 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
148 } __attribute__ ((gcc_struct));
149
150 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
151
152 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
153
154 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
155
156 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
157
158 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete;
159
160 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
161
162 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
163
164 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 index, unsigned int create);
165
166 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
167
168 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
169
170 void __ecereDestroyModuleInstances_i18n()
171 {
172 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereNameSpace__ecere__moduleMaps), __ecereNameSpace__ecere__moduleMaps = 0);
173 }
174
175 const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext)
176 {
177 struct __ecereNameSpace__ecere__com__Instance * textMap = __ecereNameSpace__ecere__moduleMaps ? (((struct __ecereNameSpace__ecere__com__Instance *)((uintptr_t)(__extension__ ({
178 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
179 {
180 __ecereNameSpace__ecere__moduleMaps, 0
181 };
182
183 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(name)), 0);
184 ((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
185 }))))) : (((void *)0));
186 const char * result = textMap ? (((const char *)((uintptr_t)(__extension__ ({
187 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
188 {
189 textMap, 0
190 };
191
192 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(stringAndContext ? stringAndContext : string)), 0);
193 ((char *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
194 }))))) : string;
195
196 return (result && result[0]) ? result : string;
197 }
198
199 struct __ecereNameSpace__ecere__com__Property;
200
201 struct __ecereNameSpace__ecere__com__Property
202 {
203 struct __ecereNameSpace__ecere__com__Property * prev;
204 struct __ecereNameSpace__ecere__com__Property * next;
205 const char *  name;
206 unsigned int isProperty;
207 int memberAccess;
208 int id;
209 struct __ecereNameSpace__ecere__com__Class * _class;
210 const char *  dataTypeString;
211 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
212 struct __ecereNameSpace__ecere__com__Instance * dataType;
213 void (*  Set)(void * , int);
214 int (*  Get)(void * );
215 unsigned int (*  IsSet)(void * );
216 void *  data;
217 void *  symbol;
218 int vid;
219 unsigned int conversion;
220 unsigned int watcherOffset;
221 const char *  category;
222 unsigned int compiled;
223 unsigned int selfWatchable;
224 unsigned int isWatchable;
225 } __attribute__ ((gcc_struct));
226
227 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
228
229 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
230
231 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
232
233 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
234
235 struct __ecereNameSpace__ecere__sys__BinaryTree;
236
237 struct __ecereNameSpace__ecere__sys__BinaryTree
238 {
239 struct __ecereNameSpace__ecere__sys__BTNode * root;
240 int count;
241 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
242 void (*  FreeKey)(void *  key);
243 } __attribute__ ((gcc_struct));
244
245 struct __ecereNameSpace__ecere__com__Method;
246
247 struct __ecereNameSpace__ecere__com__Method
248 {
249 const char *  name;
250 struct __ecereNameSpace__ecere__com__Method * parent;
251 struct __ecereNameSpace__ecere__com__Method * left;
252 struct __ecereNameSpace__ecere__com__Method * right;
253 int depth;
254 int (*  function)();
255 int vid;
256 int type;
257 struct __ecereNameSpace__ecere__com__Class * _class;
258 void *  symbol;
259 const char *  dataTypeString;
260 struct __ecereNameSpace__ecere__com__Instance * dataType;
261 int memberAccess;
262 } __attribute__ ((gcc_struct));
263
264 struct __ecereNameSpace__ecere__com__Module;
265
266 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(const char *  name, const char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
267
268 struct __ecereNameSpace__ecere__com__NameSpace;
269
270 struct __ecereNameSpace__ecere__com__NameSpace
271 {
272 const char *  name;
273 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
274 struct __ecereNameSpace__ecere__com__NameSpace *  left;
275 struct __ecereNameSpace__ecere__com__NameSpace *  right;
276 int depth;
277 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
278 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
279 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
280 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
281 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
282 } __attribute__ ((gcc_struct));
283
284 struct __ecereNameSpace__ecere__com__Application
285 {
286 int argc;
287 const char * *  argv;
288 int exitCode;
289 unsigned int isGUIApp;
290 struct __ecereNameSpace__ecere__sys__OldList allModules;
291 char *  parsedCommand;
292 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
293 } __attribute__ ((gcc_struct));
294
295 struct __ecereNameSpace__ecere__com__Module
296 {
297 struct __ecereNameSpace__ecere__com__Instance * application;
298 struct __ecereNameSpace__ecere__sys__OldList classes;
299 struct __ecereNameSpace__ecere__sys__OldList defines;
300 struct __ecereNameSpace__ecere__sys__OldList functions;
301 struct __ecereNameSpace__ecere__sys__OldList modules;
302 struct __ecereNameSpace__ecere__com__Instance * prev;
303 struct __ecereNameSpace__ecere__com__Instance * next;
304 const char *  name;
305 void *  library;
306 void *  Unload;
307 int importType;
308 int origImportType;
309 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
310 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
311 } __attribute__ ((gcc_struct));
312
313 void __ecereUnregisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
314 {
315
316 }
317
318 struct __ecereNameSpace__ecere__com__DataMember;
319
320 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
321 {
322 union
323 {
324 struct
325 {
326 const char *  dataTypeString;
327 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
328 } __attribute__ ((gcc_struct)) __anon1;
329 struct __ecereNameSpace__ecere__com__DataValue expression;
330 struct
331 {
332 const char *  memberString;
333 union
334 {
335 struct __ecereNameSpace__ecere__com__DataMember * member;
336 struct __ecereNameSpace__ecere__com__Property * prop;
337 struct __ecereNameSpace__ecere__com__Method * method;
338 } __attribute__ ((gcc_struct)) __anon1;
339 } __attribute__ ((gcc_struct)) __anon2;
340 } __attribute__ ((gcc_struct)) __anon1;
341 } __attribute__ ((gcc_struct));
342
343 struct __ecereNameSpace__ecere__com__DataMember
344 {
345 struct __ecereNameSpace__ecere__com__DataMember * prev;
346 struct __ecereNameSpace__ecere__com__DataMember * next;
347 const char *  name;
348 unsigned int isProperty;
349 int memberAccess;
350 int id;
351 struct __ecereNameSpace__ecere__com__Class * _class;
352 const char *  dataTypeString;
353 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
354 struct __ecereNameSpace__ecere__com__Instance * dataType;
355 int type;
356 int offset;
357 int memberID;
358 struct __ecereNameSpace__ecere__sys__OldList members;
359 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
360 int memberOffset;
361 short structAlignment;
362 short pointerAlignment;
363 } __attribute__ ((gcc_struct));
364
365 struct __ecereNameSpace__ecere__com__Class
366 {
367 struct __ecereNameSpace__ecere__com__Class * prev;
368 struct __ecereNameSpace__ecere__com__Class * next;
369 const char *  name;
370 int offset;
371 int structSize;
372 void * *  _vTbl;
373 int vTblSize;
374 unsigned int (*  Constructor)(void * );
375 void (*  Destructor)(void * );
376 int offsetClass;
377 int sizeClass;
378 struct __ecereNameSpace__ecere__com__Class * base;
379 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
380 struct __ecereNameSpace__ecere__sys__BinaryTree members;
381 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
382 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
383 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
384 struct __ecereNameSpace__ecere__sys__OldList derivatives;
385 int memberID;
386 int startMemberID;
387 int type;
388 struct __ecereNameSpace__ecere__com__Instance * module;
389 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
390 const char *  dataTypeString;
391 struct __ecereNameSpace__ecere__com__Instance * dataType;
392 int typeSize;
393 int defaultAlignment;
394 void (*  Initialize)();
395 int memberOffset;
396 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
397 const char *  designerClass;
398 unsigned int noExpansion;
399 const char *  defaultProperty;
400 unsigned int comRedefinition;
401 int count;
402 int isRemote;
403 unsigned int internalDecl;
404 void *  data;
405 unsigned int computeSize;
406 short structAlignment;
407 short pointerAlignment;
408 int destructionWatchOffset;
409 unsigned int fixed;
410 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
411 int inheritanceAccess;
412 const char *  fullName;
413 void *  symbol;
414 struct __ecereNameSpace__ecere__sys__OldList conversions;
415 struct __ecereNameSpace__ecere__sys__OldList templateParams;
416 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
417 struct __ecereNameSpace__ecere__com__Class * templateClass;
418 struct __ecereNameSpace__ecere__sys__OldList templatized;
419 int numParams;
420 unsigned int isInstanceClass;
421 unsigned int byValueSystemClass;
422 } __attribute__ ((gcc_struct));
423
424 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__const_String___;
425
426 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__const_String_;
427
428 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
429
430 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map;
431
432 void __ecereCreateModuleInstances_i18n()
433 {
434 __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__const_String___);
435 __ecereNameSpace__ecere__com__eInstance_IncRef(__ecereNameSpace__ecere__moduleMaps);
436 }
437
438 void __ecereNameSpace__ecere__LoadTranslatedStrings(const char * moduleName, const char * name)
439 {
440 struct __ecereNameSpace__ecere__com__Instance * f;
441 char fileName[797];
442 char lcAll[256];
443 char language[256];
444 char lang[256];
445 char lcMessages[256];
446 char * locale = (((void *)0));
447 char genericLocale[256];
448
449 genericLocale[0] = (char)0;
450 if(__ecereNameSpace__ecere__sys__GetEnvironment("ECERE_LANGUAGE", language, sizeof (language)))
451 locale = language;
452 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LANGUAGE", language, sizeof (language)))
453 locale = language;
454 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LC_ALL", lcAll, sizeof (lcAll)))
455 locale = lcAll;
456 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LC_MESSAGES", lcMessages, sizeof (lcMessages)))
457 locale = lcMessages;
458 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LANG", lang, sizeof (lang)))
459 locale = lang;
460 if(locale)
461 {
462 char * dot;
463 char * colon;
464
465 if(language != locale)
466 strcpy(language, locale);
467 dot = strstr(language, ".");
468 if(dot)
469 *dot = (char)0;
470 colon = strstr(language, ":");
471 if(colon)
472 *colon = (char)0;
473 locale = language;
474 if(!(strcasecmp)(locale, "zh"))
475 strcpy(locale, "zh_CN");
476 }
477 if(locale)
478 {
479 char * under;
480
481 strcpy(genericLocale, locale);
482 under = strchr(genericLocale, '_');
483 if(under)
484 *under = (char)0;
485 if(!(strcasecmp)(genericLocale, "zh"))
486 strcpy(genericLocale, "zh_CN");
487 }
488 if(moduleName)
489 sprintf(fileName, "<:%s>locale/%s.mo", moduleName, locale);
490 else
491 sprintf(fileName, ":locale/%s.mo", locale);
492 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
493 if(!f)
494 {
495 if(moduleName)
496 sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", moduleName, locale, name);
497 else
498 sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", locale, name);
499 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
500 }
501 if(!f)
502 {
503 sprintf(fileName, "locale/%s/LC_MESSAGES/%s.mo", locale, name);
504 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
505 }
506 if(!f)
507 {
508 sprintf(fileName, "/usr/share/locale/%s/LC_MESSAGES/%s.mo", locale, name);
509 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
510 }
511 if(!f && locale && (strcasecmp)(locale, genericLocale))
512 {
513 if(moduleName)
514 sprintf(fileName, "<:%s>locale/%s.mo", moduleName, genericLocale);
515 else
516 sprintf(fileName, ":locale/%s.mo", genericLocale);
517 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
518 if(!f)
519 {
520 if(moduleName)
521 sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", moduleName, genericLocale, name);
522 else
523 sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", genericLocale, name);
524 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
525 }
526 if(!f)
527 {
528 sprintf(fileName, "locale/%s/LC_MESSAGES/%s.mo", genericLocale, name);
529 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
530 }
531 if(!f)
532 {
533 sprintf(fileName, "/usr/share/locale/%s/LC_MESSAGES/%s.mo", genericLocale, name);
534 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
535 }
536 }
537 if(f)
538 {
539 unsigned int magic = 0;
540
541 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
542 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
543
544 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
545 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &magic, sizeof(unsigned int), 1);
546 if(magic == 0x950412de || magic == 0xde120495)
547 {
548 struct __ecereNameSpace__ecere__com__Instance * textMap;
549 unsigned int swap = magic != 0x950412de;
550 unsigned int revision = 0;
551 unsigned int numStrings = 0;
552 unsigned int origStrings = 0, transStrings = 0;
553 unsigned int hashingSize = 0, hashingOffset = 0;
554 int c;
555
556 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
557 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
558
559 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
560 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &revision, sizeof(unsigned int), 1);
561 if(swap)
562 revision = ((((revision) & 0x000000ff) << 24) | (((revision) & 0x0000ff00) << 8) | (((revision) & 0x00ff0000) >> 8) | (((revision) & 0xff000000) >> 24));
563 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
564 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
565
566 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
567 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &numStrings, sizeof(unsigned int), 1);
568 if(swap)
569 numStrings = ((((numStrings) & 0x000000ff) << 24) | (((numStrings) & 0x0000ff00) << 8) | (((numStrings) & 0x00ff0000) >> 8) | (((numStrings) & 0xff000000) >> 24));
570 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
571 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
572
573 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
574 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &origStrings, sizeof(unsigned int), 1);
575 if(swap)
576 origStrings = ((((origStrings) & 0x000000ff) << 24) | (((origStrings) & 0x0000ff00) << 8) | (((origStrings) & 0x00ff0000) >> 8) | (((origStrings) & 0xff000000) >> 24));
577 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
578 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
579
580 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
581 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &transStrings, sizeof(unsigned int), 1);
582 if(swap)
583 transStrings = ((((transStrings) & 0x000000ff) << 24) | (((transStrings) & 0x0000ff00) << 8) | (((transStrings) & 0x00ff0000) >> 8) | (((transStrings) & 0xff000000) >> 24));
584 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
586
587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
588 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &hashingSize, sizeof(unsigned int), 1);
589 if(swap)
590 hashingSize = ((((hashingSize) & 0x000000ff) << 24) | (((hashingSize) & 0x0000ff00) << 8) | (((hashingSize) & 0x00ff0000) >> 8) | (((hashingSize) & 0xff000000) >> 24));
591 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
592 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
593
594 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
595 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &hashingOffset, sizeof(unsigned int), 1);
596 if(swap)
597 hashingOffset = ((((hashingOffset) & 0x000000ff) << 24) | (((hashingOffset) & 0x0000ff00) << 8) | (((hashingOffset) & 0x00ff0000) >> 8) | (((hashingOffset) & 0xff000000) >> 24));
598 if(!__ecereNameSpace__ecere__moduleMaps)
599 __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__const_String___);
600 {
601 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, __ecereNameSpace__ecere__moduleMaps), it);
602
603 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index((void *)(&it), (uint64)(uintptr_t)(name), 0))
604 (__ecereNameSpace__ecere__com__eInstance_DecRef(((void * )((uintptr_t)(__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&it)))))), __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data((void *)(&it), 0));
605 }
606 __extension__ ({
607 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
608 {
609 __ecereNameSpace__ecere__moduleMaps, 0
610 };
611
612 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(name)), 1);
613 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, ((uint64)((uintptr_t)(textMap = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__const_String_)))));
614 });
615 for(c = 0; c < numStrings; c++)
616 {
617 unsigned int len = 0, offset = 0;
618 char * original = (((void *)0)), * translated = (((void *)0));
619
620 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
621 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
622
623 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
624 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, origStrings + c * 2 * sizeof(unsigned int), 0);
625 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
626 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
627
628 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
629 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &len, sizeof(unsigned int), 1);
630 if(swap)
631 len = ((((len) & 0x000000ff) << 24) | (((len) & 0x0000ff00) << 8) | (((len) & 0x00ff0000) >> 8) | (((len) & 0xff000000) >> 24));
632 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
633 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
634
635 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
636 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &offset, sizeof(unsigned int), 1);
637 if(swap)
638 offset = ((((offset) & 0x000000ff) << 24) | (((offset) & 0x0000ff00) << 8) | (((offset) & 0x00ff0000) >> 8) | (((offset) & 0xff000000) >> 24));
639 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
640 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
641
642 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
643 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, offset, 0);
644 original = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len + 1));
645 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
646 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
647
648 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
649 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, original, 1, len + 1);
650 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
651 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
652
653 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
654 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, transStrings + c * 2 * sizeof(unsigned int), 0);
655 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
656 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
657
658 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
659 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &len, sizeof(unsigned int), 1);
660 if(swap)
661 len = ((((len) & 0x000000ff) << 24) | (((len) & 0x0000ff00) << 8) | (((len) & 0x00ff0000) >> 8) | (((len) & 0xff000000) >> 24));
662 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
663 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
664
665 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
666 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &offset, sizeof(unsigned int), 1);
667 if(swap)
668 offset = ((((offset) & 0x000000ff) << 24) | (((offset) & 0x0000ff00) << 8) | (((offset) & 0x00ff0000) >> 8) | (((offset) & 0xff000000) >> 24));
669 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
670 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
671
672 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
673 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, offset, 0);
674 translated = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len + 1));
675 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
676 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
677
678 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
679 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, translated, 1, len + 1);
680 if(len)
681 {
682 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, textMap), it);
683
684 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index((void *)(&it), (uint64)(uintptr_t)(original), 0))
685 (__ecereNameSpace__ecere__com__eSystem_Delete(translated), translated = 0);
686 else
687 __extension__ ({
688 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
689 {
690 textMap, 0
691 };
692
693 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(original)), 1);
694 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, ((uint64)((uintptr_t)(translated))));
695 });
696 }
697 else
698 (__ecereNameSpace__ecere__com__eSystem_Delete(translated), translated = 0);
699 (__ecereNameSpace__ecere__com__eSystem_Delete(original), original = 0);
700 }
701 }
702 else
703 {
704 printf("Invalid format while loading %s\n", fileName);
705 }
706 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
707 }
708 }
709
710 void __ecereNameSpace__ecere__UnloadTranslatedStrings(const char * name)
711 {
712 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, __ecereNameSpace__ecere__moduleMaps), it);
713
714 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index((void *)(&it), (uint64)(uintptr_t)(name), 0))
715 {
716 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
717 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = ((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&it)));
718
719 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Map->_vTbl;
720 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&it))));
721 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i))__extension__ ({
722 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecereNameSpace__ecere__moduleMaps;
723
724 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Map->_vTbl;
725 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete])(__ecereNameSpace__ecere__moduleMaps, it.pointer);
726 }
727 }
728
729 void __ecereRegisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
730 {
731 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
732
733 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(const String moduleName, const char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4);
734 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(const String name)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4);
735 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "const char * ecere::GetTranslatedString(const String name, const char * string, const char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 4);
736 }
737