wip II
[sdk] / compiler / bootstrap / ecere / bootstrap / i18n.c
1 /* Code generated from eC source file: i18n.ec */
2 #if defined(__GNUC__)
3 typedef long long int64;
4 typedef unsigned long long uint64;
5 #ifndef _WIN32
6 #define __declspec(x)
7 #endif
8 #elif defined(__TINYC__)
9 #include <stdarg.h>
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
13 #ifdef _WIN32
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
17 #else
18 #define __declspec(x)
19 #endif
20 typedef long long int64;
21 typedef unsigned long long uint64;
22 #else
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
25 #endif
26 #ifdef __BIG_ENDIAN__
27 #define __ENDIAN_PAD(x) (8 - (x))
28 #else
29 #define __ENDIAN_PAD(x) 0
30 #endif
31 #include <stdint.h>
32 #include <sys/types.h>
33
34 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
35 #define _64BIT 1
36 #else
37 #define _64BIT 0
38 #endif
39
40 #define arch_PointerSize                  sizeof(void *)
41 #define structSize_Instance               (_64BIT ? 24 : 12)
42
43 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
44
45 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
46
47 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
48
49 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
50
51 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
52
53 struct __ecereNameSpace__ecere__sys__BTNode;
54
55 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
56
57 struct __ecereNameSpace__ecere__sys__BinaryTree
58 {
59 struct __ecereNameSpace__ecere__sys__BTNode * root;
60 int count;
61 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
62 void (*  FreeKey)(void *  key);
63 } __attribute__ ((gcc_struct));
64
65 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
66
67 struct __ecereNameSpace__ecere__sys__OldList
68 {
69 void *  first;
70 void *  last;
71 int count;
72 unsigned int offset;
73 unsigned int circ;
74 } __attribute__ ((gcc_struct));
75
76 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
77
78 struct __ecereNameSpace__ecere__com__Class
79 {
80 struct __ecereNameSpace__ecere__com__Class * prev;
81 struct __ecereNameSpace__ecere__com__Class * next;
82 char *  name;
83 int offset;
84 int structSize;
85 int (* *  _vTbl)();
86 int vTblSize;
87 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
88 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
89 int offsetClass;
90 int sizeClass;
91 struct __ecereNameSpace__ecere__com__Class * base;
92 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
93 struct __ecereNameSpace__ecere__sys__BinaryTree members;
94 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
95 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
96 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
97 struct __ecereNameSpace__ecere__sys__OldList derivatives;
98 int memberID;
99 int startMemberID;
100 int type;
101 struct __ecereNameSpace__ecere__com__Instance * module;
102 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
103 char *  dataTypeString;
104 struct __ecereNameSpace__ecere__com__Instance * dataType;
105 int typeSize;
106 int defaultAlignment;
107 void (*  Initialize)();
108 int memberOffset;
109 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
110 char *  designerClass;
111 unsigned int noExpansion;
112 char *  defaultProperty;
113 unsigned int comRedefinition;
114 int count;
115 unsigned int isRemote;
116 unsigned int internalDecl;
117 void *  data;
118 unsigned int computeSize;
119 int structAlignment;
120 int destructionWatchOffset;
121 unsigned int fixed;
122 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
123 int inheritanceAccess;
124 char *  fullName;
125 void *  symbol;
126 struct __ecereNameSpace__ecere__sys__OldList conversions;
127 struct __ecereNameSpace__ecere__sys__OldList templateParams;
128 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
129 struct __ecereNameSpace__ecere__com__Class * templateClass;
130 struct __ecereNameSpace__ecere__sys__OldList templatized;
131 int numParams;
132 unsigned int isInstanceClass;
133 unsigned int byValueSystemClass;
134 } __attribute__ ((gcc_struct));
135
136 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
137
138 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
139
140 struct __ecereNameSpace__ecere__com__Instance
141 {
142 int (* *  _vTbl)();
143 struct __ecereNameSpace__ecere__com__Class * _class;
144 int _refCount;
145 } __attribute__ ((gcc_struct));
146
147 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
148
149 struct __ecereNameSpace__ecere__com__Property
150 {
151 struct __ecereNameSpace__ecere__com__Property * prev;
152 struct __ecereNameSpace__ecere__com__Property * next;
153 char *  name;
154 unsigned int isProperty;
155 int memberAccess;
156 int id;
157 struct __ecereNameSpace__ecere__com__Class * _class;
158 char *  dataTypeString;
159 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
160 struct __ecereNameSpace__ecere__com__Instance * dataType;
161 void (*  Set)(void * , int);
162 int (*  Get)(void * );
163 unsigned int (*  IsSet)(void * );
164 void *  data;
165 void *  symbol;
166 int vid;
167 unsigned int conversion;
168 unsigned int watcherOffset;
169 char *  category;
170 unsigned int compiled;
171 unsigned int selfWatchable;
172 unsigned int isWatchable;
173 } __attribute__ ((gcc_struct));
174
175 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
176
177 struct __ecereNameSpace__ecere__com__DataMember
178 {
179 struct __ecereNameSpace__ecere__com__DataMember * prev;
180 struct __ecereNameSpace__ecere__com__DataMember * next;
181 char *  name;
182 unsigned int isProperty;
183 int memberAccess;
184 int id;
185 struct __ecereNameSpace__ecere__com__Class * _class;
186 char *  dataTypeString;
187 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
188 struct __ecereNameSpace__ecere__com__Instance * dataType;
189 int type;
190 int offset;
191 int memberID;
192 struct __ecereNameSpace__ecere__sys__OldList members;
193 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
194 int memberOffset;
195 int structAlignment;
196 } __attribute__ ((gcc_struct));
197
198 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
199
200 struct __ecereNameSpace__ecere__com__Method
201 {
202 char *  name;
203 struct __ecereNameSpace__ecere__com__Method * parent;
204 struct __ecereNameSpace__ecere__com__Method * left;
205 struct __ecereNameSpace__ecere__com__Method * right;
206 int depth;
207 int (*  function)();
208 int vid;
209 int type;
210 struct __ecereNameSpace__ecere__com__Class * _class;
211 void *  symbol;
212 char *  dataTypeString;
213 struct __ecereNameSpace__ecere__com__Instance * dataType;
214 int memberAccess;
215 } __attribute__ ((gcc_struct));
216
217 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
218
219 struct __ecereNameSpace__ecere__com__SerialBuffer
220 {
221 unsigned char *  _buffer;
222 unsigned int count;
223 unsigned int _size;
224 unsigned int pos;
225 } __attribute__ ((gcc_struct));
226
227 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
228
229 struct __ecereNameSpace__ecere__com__DataValue
230 {
231 union
232 {
233 char c;
234 unsigned char uc;
235 short s;
236 unsigned short us;
237 int i;
238 unsigned int ui;
239 void *  p;
240 float f;
241 double d;
242 long long i64;
243 uint64 ui64;
244 } __attribute__ ((gcc_struct));
245 } __attribute__ ((gcc_struct));
246
247 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
248
249 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
250 {
251 union
252 {
253 struct
254 {
255 char *  dataTypeString;
256 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
257 } __attribute__ ((gcc_struct));
258 struct __ecereNameSpace__ecere__com__DataValue expression;
259 struct
260 {
261 char *  memberString;
262 union
263 {
264 struct __ecereNameSpace__ecere__com__DataMember * member;
265 struct __ecereNameSpace__ecere__com__Property * prop;
266 struct __ecereNameSpace__ecere__com__Method * method;
267 } __attribute__ ((gcc_struct));
268 } __attribute__ ((gcc_struct));
269 } __attribute__ ((gcc_struct));
270 } __attribute__ ((gcc_struct));
271
272 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__moduleMaps;
273
274 extern char *  __ecereNameSpace__ecere__sys__GetEnvironment(char *  envName, char *  envValue, int max);
275
276 extern char *  strcpy(char * , const char * );
277
278 extern char *  strstr(const char * , const char * );
279
280 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
281
282 struct __ecereNameSpace__ecere__com__NameSpace
283 {
284 char *  name;
285 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
286 struct __ecereNameSpace__ecere__com__NameSpace *  left;
287 struct __ecereNameSpace__ecere__com__NameSpace *  right;
288 int depth;
289 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
290 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
291 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
292 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
293 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
294 } __attribute__ ((gcc_struct));
295
296 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
297
298 struct __ecereNameSpace__ecere__com__Module
299 {
300 struct __ecereNameSpace__ecere__com__Instance * application;
301 struct __ecereNameSpace__ecere__sys__OldList classes;
302 struct __ecereNameSpace__ecere__sys__OldList defines;
303 struct __ecereNameSpace__ecere__sys__OldList functions;
304 struct __ecereNameSpace__ecere__sys__OldList modules;
305 struct __ecereNameSpace__ecere__com__Instance * prev;
306 struct __ecereNameSpace__ecere__com__Instance * next;
307 char *  name;
308 void *  library;
309 void *  Unload;
310 int importType;
311 int origImportType;
312 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
313 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
314 } __attribute__ ((gcc_struct));
315
316 extern int sprintf(char * , char * , ...);
317
318 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char *  fileName, int mode);
319
320 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
321
322 struct __ecereNameSpace__ecere__com__IteratorPointer;
323
324 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MapIterator;
325
326 struct __ecereNameSpace__ecere__com__MapIterator
327 {
328 struct __ecereNameSpace__ecere__com__Instance * container;
329 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
330 } __attribute__ ((gcc_struct));
331
332 extern int printf(char * , ...);
333
334 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__String___;
335
336 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
337
338 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__String_;
339
340 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
341
342 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
343
344 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
345
346 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
347
348 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 index, unsigned int create);
349
350 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
351
352 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
353
354 struct __ecereNameSpace__ecere__com__Iterator
355 {
356 struct __ecereNameSpace__ecere__com__Instance * container;
357 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
358 } __attribute__ ((gcc_struct));
359
360 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
361
362 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
363
364 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
365
366 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
367
368 void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
369 {
370 struct __ecereNameSpace__ecere__com__Instance * f;
371 char fileName[797];
372 char lcAll[256];
373 char language[256];
374 char lang[256];
375 char lcMessages[256];
376 char * locale = (((void *)0));
377
378 if(__ecereNameSpace__ecere__sys__GetEnvironment("LANGUAGE", language, sizeof language))
379 locale = language;
380 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LC_ALL", lcAll, sizeof lcAll))
381 locale = lcAll;
382 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LC_MESSAGES", lcMessages, sizeof lcMessages))
383 locale = lcMessages;
384 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LANG", lang, sizeof lang))
385 locale = lang;
386 if(locale)
387 {
388 char * dot;
389
390 if(language != locale)
391 strcpy(language, locale);
392 dot = strstr(language, ".");
393 if(dot)
394 *dot = (char)0;
395 locale = language;
396 }
397 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name)
398 sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, locale, name);
399 else
400 sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", locale, name);
401 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
402 if(!f)
403 {
404 sprintf(fileName, "locale/%s/LC_MESSAGES/%s.mo", locale, name);
405 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
406 }
407 if(!f)
408 {
409 sprintf(fileName, "/usr/share/locale/%s/LC_MESSAGES/%s.mo", locale, name);
410 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
411 }
412 if(f)
413 {
414 unsigned int magic = 0;
415
416 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &magic, sizeof(unsigned int), 1);
417 if(magic == 0x950412de || magic == 0xde120495)
418 {
419 struct __ecereNameSpace__ecere__com__Instance * textMap;
420 unsigned int swap = magic != 0x950412de;
421 unsigned int revision = 0;
422 unsigned int numStrings = 0;
423 unsigned int origStrings = 0, transStrings = 0;
424 unsigned int hashingSize = 0, hashingOffset = 0;
425 int c;
426
427 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &revision, sizeof(unsigned int), 1);
428 if(swap)
429 ((((revision) & 0x000000ff) << 24) | (((revision) & 0x0000ff00) << 8) | (((revision) & 0x00ff0000) >> 8) | (((revision) & 0xff000000) >> 24));
430 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &numStrings, sizeof(unsigned int), 1);
431 if(swap)
432 ((((numStrings) & 0x000000ff) << 24) | (((numStrings) & 0x0000ff00) << 8) | (((numStrings) & 0x00ff0000) >> 8) | (((numStrings) & 0xff000000) >> 24));
433 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &origStrings, sizeof(unsigned int), 1);
434 if(swap)
435 ((((origStrings) & 0x000000ff) << 24) | (((origStrings) & 0x0000ff00) << 8) | (((origStrings) & 0x00ff0000) >> 8) | (((origStrings) & 0xff000000) >> 24));
436 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &transStrings, sizeof(unsigned int), 1);
437 if(swap)
438 ((((transStrings) & 0x000000ff) << 24) | (((transStrings) & 0x0000ff00) << 8) | (((transStrings) & 0x00ff0000) >> 8) | (((transStrings) & 0xff000000) >> 24));
439 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &hashingSize, sizeof(unsigned int), 1);
440 if(swap)
441 ((((hashingSize) & 0x000000ff) << 24) | (((hashingSize) & 0x0000ff00) << 8) | (((hashingSize) & 0x00ff0000) >> 8) | (((hashingSize) & 0xff000000) >> 24));
442 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &hashingOffset, sizeof(unsigned int), 1);
443 if(swap)
444 ((((hashingOffset) & 0x000000ff) << 24) | (((hashingOffset) & 0x0000ff00) << 8) | (((hashingOffset) & 0x00ff0000) >> 8) | (((hashingOffset) & 0xff000000) >> 24));
445 if(!__ecereNameSpace__ecere__moduleMaps)
446 __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__String___);
447 {
448 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);
449
450 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), 0x0))
451 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it)), __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&it, 0));
452 }
453 __extension__ ({
454 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
455 {
456 __ecereNameSpace__ecere__moduleMaps, 0
457 };
458
459 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name))), 0x1);
460 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, textMap = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__String_));
461 });
462 for(c = 0; c < numStrings; c++)
463 {
464 unsigned int len = 0, offset = 0;
465 char * original = (((void *)0)), * translated = (((void *)0));
466
467 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, origStrings + c * 2 * sizeof(unsigned int), 0);
468 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &len, sizeof(unsigned int), 1);
469 if(swap)
470 ((((len) & 0x000000ff) << 24) | (((len) & 0x0000ff00) << 8) | (((len) & 0x00ff0000) >> 8) | (((len) & 0xff000000) >> 24));
471 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &offset, sizeof(unsigned int), 1);
472 if(swap)
473 ((((offset) & 0x000000ff) << 24) | (((offset) & 0x0000ff00) << 8) | (((offset) & 0x00ff0000) >> 8) | (((offset) & 0xff000000) >> 24));
474 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, offset, 0);
475 original = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len + 1));
476 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, original, 1, len + 1);
477 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, transStrings + c * 2 * sizeof(unsigned int), 0);
478 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &len, sizeof(unsigned int), 1);
479 if(swap)
480 ((((len) & 0x000000ff) << 24) | (((len) & 0x0000ff00) << 8) | (((len) & 0x00ff0000) >> 8) | (((len) & 0xff000000) >> 24));
481 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &offset, sizeof(unsigned int), 1);
482 if(swap)
483 ((((offset) & 0x000000ff) << 24) | (((offset) & 0x0000ff00) << 8) | (((offset) & 0x00ff0000) >> 8) | (((offset) & 0xff000000) >> 24));
484 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, offset, 0);
485 translated = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len + 1));
486 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, translated, 1, len + 1);
487 if(len)
488 {
489 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, textMap), it);
490
491 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(original), 0x0))
492 (__ecereNameSpace__ecere__com__eSystem_Delete(translated), translated = 0);
493 else
494 __extension__ ({
495 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
496 {
497 textMap, 0
498 };
499
500 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(original))), 0x1);
501 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, translated);
502 });
503 }
504 else
505 (__ecereNameSpace__ecere__com__eSystem_Delete(translated), translated = 0);
506 (__ecereNameSpace__ecere__com__eSystem_Delete(original), original = 0);
507 }
508 }
509 else
510 {
511 printf("Invalid format while loading %s\n", fileName);
512 }
513 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
514 }
515 }
516
517 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
518
519 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete;
520
521 void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module)
522 {
523 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);
524
525 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), 0x0))
526 {
527 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it))->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it)));
528 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i))__ecereNameSpace__ecere__moduleMaps->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete])(__ecereNameSpace__ecere__moduleMaps, it.pointer);
529 }
530 }
531
532 char * __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char * string, char * stringAndContext)
533 {
534 struct __ecereNameSpace__ecere__com__Instance * textMap = __ecereNameSpace__ecere__moduleMaps ? (__extension__ ({
535 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
536 {
537 __ecereNameSpace__ecere__moduleMaps, 0
538 };
539
540 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name))), 0x0);
541 ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
542 })) : (((void *)0));
543 char * result = textMap ? (__extension__ ({
544 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
545 {
546 textMap, 0
547 };
548
549 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(stringAndContext ? stringAndContext : string))), 0x0);
550 ((char *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
551 })) : string;
552
553 return (result && result[0]) ? result : string;
554 }
555
556 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
557
558 struct __ecereNameSpace__ecere__com__GlobalFunction;
559
560 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
561
562 void __ecereRegisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
563 {
564 struct __ecereNameSpace__ecere__com__Class * class;
565
566 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4);
567 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(ecere::com::Module module)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4);
568 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "char * ecere::GetTranslatedString(ecere::com::Module module, char * string, char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 4);
569 }
570
571 void __ecereUnregisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
572 {
573
574 }
575
576 void __ecereCreateModuleInstances_i18n()
577 {
578 __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__String___);
579 __ecereNameSpace__ecere__com__eInstance_IncRef(__ecereNameSpace__ecere__moduleMaps);
580 }
581
582 void __ecereDestroyModuleInstances_i18n()
583 {
584 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereNameSpace__ecere__moduleMaps), __ecereNameSpace__ecere__moduleMaps = 0);
585 }
586