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