int cindex;
for(cindex = 0; cindex < MAXLANGUAGES; cindex++) {
if(langdict[cindex] == NULL) break;
- if(!strcmp(langdict[cindex]->langtag, tag))
+ if(!stricmp(langdict[cindex]->langtag, tag))
return langdict[cindex];
}
return NULL;
int cindex;
for(cindex = 0; cindex < MAXLANGUAGES; cindex++) {
if(langdict[cindex] == NULL) break;
- if(!strcmp(langdict[cindex]->langname, name))
+ if(!stricmp(langdict[cindex]->langname, name))
return langdict[cindex];
}
return NULL;
void register_default_language_table(const struct default_language_entry *msgtab) {
if(lang_c == NULL)
lang_c = add_language(DEFAULT_LANG_TAG, DEFAULT_LANG_NAME);
- struct language_table *lang_entry;
- int cindex;
while(msgtab->ident) {
- cindex = get_entry_index(msgtab->ident);
- lang_entry = malloc(sizeof(*lang_entry));
- if (!lang_entry) {
- perror("malloc() failed");
- return;
- }
- lang_entry->ident = strdup(msgtab->ident);
- lang_entry->text = strdup(msgtab->text);
- lang_entry->next = lang_c->entrys[cindex];
- lang_c->entrys[cindex] = lang_entry;
+ register_language_string(lang_c, msgtab->ident, msgtab->text);
msgtab++;
}
}
perror("malloc() failed");
return;
}
+
lang_entry->ident = strdup(ident);
- lang_entry->text = strdup(text);
+ //replace all:
+ //$b to \002
+ //$k to \003
+ char txt[MAXLEN];
+ strcpy(txt, text);
+ char tmp[MAXLEN];
+ int tmppos = 0;
+ char *a, *b = txt;
+ do {
+ a = strstr(b, "$");
+ if(a) *a = '\0';
+ tmppos += sprintf(tmp + tmppos, "%s", b);
+ if(a) {
+ switch(a[1]) {
+ case 'b':
+ tmp[tmppos++] = '\002';
+ break;
+ case 'k':
+ tmp[tmppos++] = '\003';
+ break;
+ default:
+ //unknown - just write it
+ tmppos += sprintf(tmp + tmppos, "$%c", a[1]);
+ }
+ b = a+2;
+ }
+ } while(a);
+ lang_entry->text = strdup(tmp);
lang_entry->next = lang->entrys[cindex];
lang->entrys[cindex] = lang_entry;
}
if(!strcmp(entry->ident, msg_ident))
return entry->text;
}
+ if(lang == lang_c) return NULL;
+ for(entry = lang_c->entrys[cindex]; entry; entry = entry->next) {
+ if(!strcmp(entry->ident, msg_ident))
+ return entry->text;
+ }
return NULL;
}