Renaming keyword tokens to English.

This commit is contained in:
Enno Rehling 2014-06-16 19:12:55 -07:00
parent 27374a9329
commit 0af5e96e3a
10 changed files with 296 additions and 319 deletions

View File

@ -2113,213 +2113,178 @@
<string name="//">
<text locale="de">//</text>
</string>
<string name="BANNER">
<string name="banner">
<text locale="de">BANNER</text>
</string>
<string name="ARBEITEN">
<string name="work">
<text locale="de">ARBEITEN</text>
</string>
<string name="WARTEN">
<text locale="de">WARTEN</text>
<text locale="en">WAIT</text>
</string>
<string name="ATTACKIEREN">
<string name="attack">
<text locale="de">ATTACKIEREN</text>
</string>
<string name="BIETEN">
<text locale="de">BIETEN</text>
</string>
<string name="BEANSPRUCHEN">
<text locale="de">BEANSPRUCHEN</text>
<string name="claim">
<text locale="en">CLAIM</text>
</string>
<string name="BEKLAUEN">
<string name="steal">
<text locale="de">BEKLAUEN</text>
</string>
<string name="BELAGERE">
<string name="besiege">
<text locale="de">BELAGERE</text>
</string>
<string name="BENENNEN">
<string name="name">
<text locale="de">BENENNEN</text>
</string>
<string name="BENUTZEN">
<string name="use">
<text locale="de">BENUTZEN</text>
</string>
<string name="BESCHREIBEN">
<string name="describe">
<text locale="de">BESCHREIBEN</text>
</string>
<string name="BETRETEN">
<string name="enter">
<text locale="de">BETRETEN</text>
</string>
<string name="BEWACHEN">
<string name="guard">
<text locale="de">BEWACHEN</text>
</string>
<string name="BOTSCHAFT">
<string name="message">
<text locale="de">BOTSCHAFT</text>
</string>
<string name="ENDE">
<string name="end">
<text locale="de">ENDE</text>
</string>
<string name="FAHREN">
<string name="ride">
<text locale="de">FAHREN</text>
</string>
<string name="NUMMER">
<string name="number">
<text locale="de">NUMMER</text>
</string>
<string name="FRIEDEN">
<text locale="de">FRIEDEN</text>
<text locale="en">PEACE</text>
</string>
<string name="KRIEG">
<text locale="de">KRIEG</text>
<text locale="en">WAR</text>
</string>
<string name="FOLGEN">
<string name="follow">
<text locale="de">FOLGEN</text>
</string>
<string name="FORSCHEN">
<string name="research">
<text locale="de">FORSCHEN</text>
</string>
<string name="HELFEN">
<string name="help">
<text locale="de">HELFEN</text>
</string>
<string name="KAEMPFEN">
<string name="fight">
<text locale="de">KÄMPFEN</text>
</string>
<string name="KAMPFZAUBER">
<string name="ready">
<text locale="de">KAMPFZAUBER</text>
</string>
<string name="KAUFEN">
<string name="buy">
<text locale="de">KAUFEN</text>
</string>
<string name="KONTAKTIEREN">
<string name="contact">
<text locale="de">KONTAKTIEREN</text>
</string>
<string name="LEHREN">
<string name="teach">
<text locale="de">LEHREN</text>
</string>
<string name="LERNEN">
<string name="study">
<text locale="de">LERNEN</text>
</string>
<string name="MACHEN">
<string name="make">
<text locale="de">MACHEN</text>
</string>
<string name="NACH">
<string name="move">
<text locale="de">NACH</text>
</string>
<string name="ALLIANZ">
<string name="alliance">
<text locale="de">ALLIANZ</text>
<text locale="en">ALLIANCE</text>
</string>
<string name="PROMOTION">
<string name="promote">
<text locale="de">BEFÖRDERUNG</text>
<text locale="en">PROMOTION</text>
</string>
<string name="BEZAHLEN">
<text locale="de">BEZAHLEN</text>
<text locale="en">PAY</text>
</string>
<string name="PFLANZEN">
<string name="plant">
<text locale="de">PFLANZEN</text>
</string>
<string name="PRAEFIX">
<string name="prefix">
<text locale="de">PRÄFIX</text>
</string>
<string name="INFO">
<string name="info">
<text locale="de">INFO</text>
</string>
<string name="PASSWORT">
<string name="password">
<text locale="de">PASSWORT</text>
</string>
<string name="REKRUTIEREN">
<string name="recruit">
<text locale="de">REKRUTIEREN</text>
</string>
<string name="RESERVIEREN">
<string name="reserve">
<text locale="de">RESERVIEREN</text>
</string>
<string name="ROUTE">
<string name="route">
<text locale="de">ROUTE</text>
</string>
<string name="SABOTIEREN">
<string name="sabotage">
<text locale="de">SABOTIEREN</text>
</string>
<string name="OPTION">
<string name="option">
<text locale="de">OPTION</text>
</string>
<string name="SPIONIEREN">
<string name="spy">
<text locale="de">SPIONIEREN</text>
</string>
<string name="STIRB">
<string name="quit">
<text locale="de">STIRB</text>
</string>
<string name="TARNEN">
<string name="hide">
<text locale="de">TARNEN</text>
</string>
<string name="TRANSPORTIEREN">
<string name="carry">
<text locale="de">TRANSPORTIEREN</text>
</string>
<string name="TREIBEN">
<string name="tax">
<text locale="de">TREIBEN</text>
</string>
<string name="UNTERHALTEN">
<string name="entertain">
<text locale="de">UNTERHALTEN</text>
</string>
<string name="VERKAUFEN">
<string name="sell">
<text locale="de">VERKAUFEN</text>
</string>
<string name="VERLASSEN">
<string name="leave">
<text locale="de">VERLASSEN</text>
</string>
<string name="VERGESSEN">
<string name="forget">
<text locale="de">VERGESSEN</text>
</string>
<string name="ZAUBERE">
<string name="cast">
<text locale="de">ZAUBERE</text>
</string>
<string name="ZEIGEN">
<string name="show">
<text locale="de">ZEIGEN</text>
</string>
<string name="ZERSTOEREN">
<string name="destroy">
<text locale="de">ZERSTÖREN</text>
</string>
<string name="ZUECHTEN">
<string name="grow">
<text locale="de">ZÜCHTEN</text>
</string>
<string name="DEFAULT">
<string name="default">
<text locale="de">DEFAULT</text>
</string>
<string name="REPORT">
<string name="report">
<text locale="de">REPORT</text>
</string>
<string name="XML">
<text locale="de">XML</text>
<text locale="en">XML</text>
</string>
<string name="URSPRUNG">
<string name="origin">
<text locale="de">URSPRUNG</text>
</string>
<string name="EMAIL">
<string name="email">
<text locale="de">EMAIL</text>
</string>
<string name="PIRATERIE">
<string name="piracy">
<text locale="de">PIRATERIE</text>
</string>
<string name="LOCALE">
<string name="locale">
<text locale="de">LOCALE</text>
</string>
<string name="NEUSTART">
<text locale="de">NEUSTART</text>
</string>
<string name="GRUPPE">
<string name="group">
<text locale="de">GRUPPE</text>
</string>
<string name="OPFERE">
<text locale="de">OPFERE</text>
</string>
<string name="BETEN">
<text locale="de">BETEN</text>
</string>
<string name="SORTIEREN">
<string name="sort">
<text locale="de">SORTIEREN</text>
</string>
</namespace>

View File

@ -1385,181 +1385,178 @@
<string name="//">
<text locale="en">//</text>
</string>
<string name="ARBEITEN">
<string name="work">
<text locale="en">WORK</text>
</string>
<string name="ATTACKIEREN">
<string name="attack">
<text locale="en">ATTACK</text>
</string>
<string name="BANNER">
<string name="banner">
<text locale="en">BANNER</text>
</string>
<string name="BEKLAUEN">
<string name="steal">
<text locale="en">STEAL</text>
</string>
<string name="BELAGERE">
<string name="besiege">
<text locale="en">BESIEGE</text>
</string>
<string name="BENENNEN">
<string name="name">
<text locale="en">NAME</text>
</string>
<string name="BENUTZEN">
<string name="use">
<text locale="en">USE</text>
</string>
<string name="BESCHREIBEN">
<string name="describe">
<text locale="en">DESCRIBE</text>
</string>
<string name="BETEN">
<text locale="en">PRAY</text>
</string>
<string name="BETRETEN">
<string name="enter">
<text locale="en">ENTER</text>
</string>
<string name="BEWACHEN">
<string name="guard">
<text locale="en">GUARD</text>
</string>
<string name="BIETEN">
<string name="bid">
<text locale="en">BID</text>
</string>
<string name="BOTSCHAFT">
<string name="message">
<text locale="en">MESSAGE</text>
</string>
<string name="DEFAULT">
<string name="default">
<text locale="en">DEFAULT</text>
</string>
<string name="EMAIL">
<string name="email">
<text locale="en">EMAIL</text>
</string>
<string name="ENDE">
<string name="end">
<text locale="en">END</text>
</string>
<string name="FAHREN">
<string name="ride">
<text locale="en">RIDE</text>
</string>
<string name="FOLGEN">
<string name="follow">
<text locale="en">FOLLOW</text>
</string>
<string name="FORSCHEN">
<string name="research">
<text locale="en">RESEARCH</text>
</string>
<string name="GRUPPE">
<string name="group">
<text locale="en">GROUP</text>
</string>
<string name="HELFEN">
<string name="help">
<text locale="en">HELP</text>
</string>
<string name="KAMPFZAUBER">
<string name="ready">
<text locale="en">COMBATSPELL</text>
</string>
<string name="KAUFEN">
<string name="buy">
<text locale="en">BUY</text>
</string>
<string name="KONTAKTIEREN">
<string name="contact">
<text locale="en">CONTACT</text>
</string>
<string name="KAEMPFEN">
<string name="combat">
<text locale="en">COMBAT</text>
</string>
<string name="LEHREN">
<string name="teach">
<text locale="en">TEACH</text>
</string>
<string name="LERNEN">
<string name="study">
<text locale="en">LEARN</text>
</string>
<string name="LIEFERE">
<text locale="en">SUPPLY</text>
</string>
<string name="LOCALE">
<string name="locale">
<text locale="en">LOCALE</text>
</string>
<string name="MACHEN">
<string name="make">
<text locale="en">MAKE</text>
</string>
<string name="NACH">
<string name="move">
<text locale="en">MOVE</text>
</string>
<string name="NEUSTART">
<text locale="en">RESTART</text>
</string>
<string name="NUMMER">
<string name="number">
<text locale="en">NUMBER</text>
</string>
<string name="OPFERE">
<text locale="en">SACRIFICE</text>
</string>
<string name="OPTION">
<string name="option">
<text locale="en">OPTION</text>
</string>
<string name="PASSWORT">
<string name="password">
<text locale="en">PASSWORD</text>
</string>
<string name="PFLANZEN">
<string name="plant">
<text locale="en">PLANT</text>
</string>
<string name="PIRATERIE">
<string name="piracy">
<text locale="en">PIRACY</text>
</string>
<string name="PRAEFIX">
<string name="prefix">
<text locale="en">PREFIX</text>
</string>
<string name="REKRUTIEREN">
<string name="alliance">
<text locale="en">ALLIANCE</text>
</string>
<string name="promote">
<text locale="en">PROMOTION</text>
</string>
<string name="claim">
<text locale="en">CLAIM</text>
</string>
<string name="recruit">
<text locale="en">RECRUIT</text>
</string>
<string name="REPORT">
<string name="report">
<text locale="en">REPORT</text>
</string>
<string name="RESERVIEREN">
<string name="reserve">
<text locale="en">RESERVE</text>
</string>
<string name="ROUTE">
<string name="route">
<text locale="en">ROUTE</text>
</string>
<string name="SABOTIEREN">
<string name="sabotage">
<text locale="en">SABOTAGE</text>
</string>
<string name="SORTIEREN">
<string name="sort">
<text locale="en">SORT</text>
</string>
<string name="SPIONIEREN">
<string name="spy">
<text locale="en">SPY</text>
</string>
<string name="STIRB">
<string name="quit">
<text locale="en">QUIT</text>
</string>
<string name="TARNEN">
<string name="hide">
<text locale="en">HIDE</text>
</string>
<string name="TRANSPORTIEREN">
<string name="carry">
<text locale="en">CARRY</text>
</string>
<string name="TREIBEN">
<string name="tax">
<text locale="en">TAX</text>
</string>
<string name="UNTERHALTEN">
<string name="entertain">
<text locale="en">ENTERTAIN</text>
</string>
<string name="URSPRUNG">
<string name="origin">
<text locale="en">ORIGIN</text>
</string>
<string name="VERGESSEN">
<string name="forget">
<text locale="en">FORGET</text>
</string>
<string name="VERKAUFEN">
<string name="sell">
<text locale="en">SELL</text>
</string>
<string name="VERLASSEN">
<string name="leave">
<text locale="en">LEAVE</text>
</string>
<string name="ZAUBERE">
<string name="cast">
<text locale="en">CAST</text>
</string>
<string name="ZEIGEN">
<string name="show">
<text locale="en">SHOW</text>
</string>
<string name="ZERSTOEREN">
<string name="destroy">
<text locale="en">DESTROY</text>
</string>
<string name="ZUECHTEN">
<string name="grow">
<text locale="en">GROW</text>
</string>
</namespace>

View File

@ -1393,184 +1393,169 @@
<string name="//">
<text locale="fr">//</text>
</string>
<string name="ARBEITEN">
<string name="work">
<text locale="fr">TRAVAILLER</text>
</string>
<string name="ATTACKIEREN">
<string name="attack">
<text locale="fr">ATTAQUER</text>
</string>
<string name="BANNER">
<string name="banner">
<text locale="fr">ANNONCE</text>
</string>
<string name="BEKLAUEN">
<string name="steal">
<text locale="fr">VOLER</text>
</string>
<string name="BELAGERE">
<string name="besiege">
<text locale="fr">ASSIEGER</text>
</string>
<string name="BENENNEN">
<string name="name">
<text locale="fr">NOMMER</text>
</string>
<string name="BENUTZEN">
<string name="use">
<text locale="fr">UTILISER</text>
</string>
<string name="BESCHREIBEN">
<string name="describe">
<text locale="fr">DECRIRE</text>
</string>
<string name="BETEN">
<text locale="fr">PRIER</text>
</string>
<string name="BETRETEN">
<string name="enter">
<text locale="fr">ENTRER</text>
</string>
<string name="BEWACHEN">
<string name="guard">
<text locale="fr">GUARDER</text>
</string>
<string name="BIETEN">
<text locale="fr">OFFRIR</text>
</string>
<string name="BOTSCHAFT">
<string name="message">
<text locale="fr">MESSAGE</text>
</string>
<string name="DEFAULT">
<string name="default">
<text locale="fr">DEFAUT</text>
</string>
<string name="EMAIL">
<string name="email">
<text locale="fr">EMAIL</text>
</string>
<string name="ENDE">
<string name="end">
<text locale="fr">FIN</text>
</string>
<string name="FAHREN">
<string name="ride">
<text locale="fr">CHEVAUCHER</text>
</string>
<string name="FOLGEN">
<string name="follow">
<text locale="fr">SUIVRE</text>
</string>
<string name="FORSCHEN">
<string name="research">
<text locale="fr">CHERCHER</text>
</string>
<string name="GRUPPE">
<string name="group">
<text locale="fr">GROUPER</text>
</string>
<string name="HELFEN">
<string name="help">
<text locale="fr">AIDER</text>
</string>
<string name="KAMPFZAUBER">
<string name="ready">
<text locale="fr">PREPARER</text>
</string>
<string name="KAUFEN">
<string name="buy">
<text locale="fr">ACHETER</text>
</string>
<string name="KONTAKTIEREN">
<string name="contact">
<text locale="fr">CONTACTER</text>
</string>
<string name="KÄMPFEN">
<string name="fight">
<text locale="fr">COMBATTRE</text>
</string>
<string name="LEHREN">
<string name="teach">
<text locale="fr">ENSEIGNER</text>
</string>
<string name="LERNEN">
<string name="study">
<text locale="fr">APPRENDRE</text>
</string>
<string name="LIEFERE">
<text locale="fr">FOURNIR</text>
</string>
<string name="LOCALE">
<string name="locale">
<text locale="fr">LOCAL</text>
</string>
<string name="MACHEN">
<string name="make">
<text locale="fr">FAIRE</text>
</string>
<string name="NACH">
<string name="move">
<text locale="fr">ALLER</text>
</string>
<string name="NEUSTART">
<text locale="fr">RECOMMENCER</text>
</string>
<string name="NUMMER">
<string name="number">
<text locale="fr">NOMBRE</text>
</string>
<string name="OPFERE">
<text locale="fr">SACRIFIER</text>
</string>
<string name="OPTION">
<string name="option">
<text locale="fr">OPTION</text>
</string>
<string name="PASSWORT">
<string name="password">
<text locale="fr">PASSWORD</text>
</string>
<string name="PFLANZEN">
<string name="plant">
<text locale="fr">PLANTER</text>
</string>
<string name="PIRATERIE">
<string name="piracy">
<text locale="fr">PIRATERIE</text>
</string>
<string name="PRÄFIX">
<string name="prefix">
<text locale="fr">PREFIXE</text>
</string>
<string name="REKRUTIEREN">
<string name="recruit">
<text locale="fr">RECRUTER</text>
</string>
<string name="REPORT">
<string name="report">
<text locale="fr">RAPPORT</text>
</string>
<string name="RESERVIEREN">
<string name="reserver">
<text locale="fr">RESERVER</text>
</string>
<string name="ROUTE">
<string name="route">
<text locale="fr">TRAJET</text>
</string>
<string name="SABOTIEREN">
<string name="sabotage">
<text locale="fr">SABOTER</text>
</string>
<string name="SORTIEREN">
<string name="sort">
<text locale="fr">TRIER</text>
</string>
<string name="SPIONIEREN">
<string name="spy">
<text locale="fr">ESPIONNER</text>
</string>
<string name="STIRB">
<string name="quit">
<text locale="fr">ABANDONNER</text>
</string>
<string name="SYNONYM">
<text locale="fr">SYNONYME</text>
</string>
<string name="TARNEN">
<string name="hide">
<text locale="fr">CACHER</text>
</string>
<string name="TRANSPORTIEREN">
<string name="transport">
<text locale="fr">TRANSPORTER</text>
</string>
<string name="TREIBEN">
<string name="tax">
<text locale="fr">TAXER</text>
</string>
<string name="UNTERHALTEN">
<string name="entertain">
<text locale="fr">DIVERTIR</text>
</string>
<string name="URSPRUNG">
<string name="origin">
<text locale="fr">ORIGINE</text>
</string>
<string name="VERGESSEN">
<string name="forget">
<text locale="fr">OUBLIER</text>
</string>
<string name="VERKAUFEN">
<string name="sell">
<text locale="fr">VENDRE</text>
</string>
<string name="VERLASSEN">
<string name="leave">
<text locale="fr">SORTIR</text>
</string>
<string name="ZAUBERE">
<string name="cast">
<text locale="fr">INCANTER</text>
</string>
<string name="ZEIGEN">
<string name="show">
<text locale="fr">MONTRER</text>
</string>
<string name="ZERSTÖREN">
<string name="destroy">
<text locale="fr">DETRUIRE</text>
</string>
<string name="ZÜCHTEN">
<string name="grow">
<text locale="fr">ACCROITRE</text>
</string>
</namespace>

View File

@ -54,10 +54,6 @@
<!-- Game specific settings -->
<order name="BEZAHLEN" disable="yes"/>
<order name="FRIEDEN" disable="yes"/>
<order name="GM" disable="yes"/>
<order name="JIHAD" disable="yes"/>
<order name="KRIEG" disable="yes"/>
<skill name="alchemy" enable="true"/>
<skill name="crossbow" enable="true"/>

View File

@ -55,7 +55,7 @@ without prior permission by the authors of Eressea.
void json_construction(cJSON *json, construction **consp) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("building %s is not a json object: %d\n", json->string, json->type);
log_error_n("building %s is not a json object: %d", json->string, json->type);
return;
}
construction * cons = (construction *)calloc(sizeof(construction), 1);
@ -73,7 +73,7 @@ void json_construction(cJSON *json, construction **consp) {
}
break;
default:
log_error("building %s contains unknown attribute %s\n", json->string, child->string);
log_error_n("building %s contains unknown attribute %s", json->string, child->string);
}
}
*consp = cons;
@ -82,18 +82,18 @@ void json_construction(cJSON *json, construction **consp) {
void json_terrain(cJSON *json, terrain_type *ter) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("terrain %s is not a json object: %d\n", json->string, json->type);
log_error_n("terrain %s is not a json object: %d", json->string, json->type);
return;
}
for (child=json->child;child;child=child->next) {
log_error("terrain %s contains unknown attribute %s\n", json->string, child->string);
log_error_n("terrain %s contains unknown attribute %s", json->string, child->string);
}
}
void json_building(cJSON *json, building_type *bt) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("building %s is not a json object: %d\n", json->string, json->type);
log_error_n("building %s is not a json object: %d", json->string, json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -104,7 +104,7 @@ void json_building(cJSON *json, building_type *bt) {
}
break;
default:
log_error("building %s contains unknown attribute %s\n", json->string, child->string);
log_error_n("building %s contains unknown attribute %s", json->string, child->string);
}
}
}
@ -112,7 +112,7 @@ void json_building(cJSON *json, building_type *bt) {
void json_ship(cJSON *json, ship_type *st) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("ship %s is not a json object: %d\n", json->string, json->type);
log_error_n("ship %s is not a json object: %d", json->string, json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -123,7 +123,7 @@ void json_ship(cJSON *json, ship_type *st) {
}
break;
default:
log_error("ship %s contains unknown attribute %s\n", json->string, child->string);
log_error_n("ship %s contains unknown attribute %s", json->string, child->string);
}
}
}
@ -131,7 +131,7 @@ void json_ship(cJSON *json, ship_type *st) {
void json_race(cJSON *json, race *rc) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("race %s is not a json object: %d\n", json->string, json->type);
log_error_n("race %s is not a json object: %d", json->string, json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -201,7 +201,7 @@ void json_race(cJSON *json, race *rc) {
void json_terrains(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("terrains is not a json object: %d\n", json->type);
log_error_n("terrains is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -212,7 +212,7 @@ void json_terrains(cJSON *json) {
void json_buildings(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("buildings is not a json object: %d\n", json->type);
log_error_n("buildings is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -223,7 +223,7 @@ void json_buildings(cJSON *json) {
void json_ships(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("ships is not a json object: %d\n", json->type);
log_error_n("ships is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -234,7 +234,7 @@ void json_ships(cJSON *json) {
static void json_direction(cJSON *json, struct locale *lang) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("directions for locale `%s` not a json object: %d\n", locale_name(lang), json->type);
log_error_n("directions for locale `%s` not a json object: %d", locale_name(lang), json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -249,7 +249,7 @@ static void json_direction(cJSON *json, struct locale *lang) {
init_direction(lang, dir, entry->valuestring);
}
} else {
log_error("invalid type %d for direction `%s`\n", child->type, child->string);
log_error_n("invalid type %d for direction `%s`", child->type, child->string);
}
}
}
@ -258,7 +258,7 @@ static void json_direction(cJSON *json, struct locale *lang) {
void json_directions(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("directions is not a json object: %d\n", json->type);
log_error_n("directions is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -270,7 +270,7 @@ void json_directions(cJSON *json) {
static void json_keyword(cJSON *json, struct locale *lang) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("keywords for locale `%s` not a json object: %d\n", locale_name(lang), json->type);
log_error_n("keywords for locale `%s` not a json object: %d", locale_name(lang), json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -285,8 +285,10 @@ static void json_keyword(cJSON *json, struct locale *lang) {
init_keyword(lang, kwd, entry->valuestring);
}
} else {
log_error("invalid type %d for keyword `%s`\n", child->type, child->string);
log_error_n("invalid type %d for keyword `%s`", child->type, child->string);
}
} else {
log_error_n("unknown keyword `%s` for locale `%s`", child->string, locale_name(lang));
}
}
}
@ -294,7 +296,7 @@ static void json_keyword(cJSON *json, struct locale *lang) {
void json_keywords(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("keywords is not a json object: %d\n", json->type);
log_error_n("keywords is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -306,7 +308,7 @@ void json_keywords(cJSON *json) {
void json_races(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("races is not a json object: %d\n", json->type);
log_error_n("races is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -317,7 +319,7 @@ void json_races(cJSON *json) {
void json_config(cJSON *json) {
cJSON *child;
if (json->type!=cJSON_Object) {
log_error("config is not a json object: %d\n", json->type);
log_error_n("config is not a json object: %d", json->type);
return;
}
for (child=json->child;child;child=child->next) {
@ -339,7 +341,7 @@ void json_config(cJSON *json) {
else if (strcmp(child->string, "terrains")==0) {
json_terrains(child);
} else {
log_error("config contains unknown attribute %s\n", child->string);
log_error_n("config contains unknown attribute %s", child->string);
}
}
}

View File

@ -169,7 +169,7 @@ static void test_directions(CuTest * tc)
static void test_keywords(CuTest * tc)
{
const char * data = "{\"keywords\": { \"de\" : { \"NACH\" : \"nach\", \"LERNEN\" : \"lernen\" }}}";
const char * data = "{\"keywords\": { \"de\" : { \"move\" : \"nach\", \"study\" : \"lernen\" }}}";
const struct locale * lang;
cJSON *json = cJSON_Parse(data);

View File

@ -77,62 +77,62 @@ bool keyword_disabled(keyword_t kwd) {
const char *keywords[MAXKEYWORDS] = {
"//",
"BANNER",
"banner",
"work",
"ATTACKIEREN",
"BEKLAUEN",
"BELAGERE",
"BENENNEN",
"BENUTZEN",
"BESCHREIBEN",
"BETRETEN",
"BEWACHEN",
"BOTSCHAFT",
"ENDE",
"FAHREN",
"NUMMER",
"FOLGEN",
"FORSCHEN",
"GIB",
"HELFEN",
"KAEMPFEN",
"KAMPFZAUBER",
"KAUFEN",
"KONTAKTIEREN",
"LEHREN",
"LERNEN",
"MACHEN",
"NACH",
"PASSWORT",
"REKRUTIEREN",
"RESERVIEREN",
"ROUTE",
"SABOTIEREN",
"OPTION",
"SPIONIEREN",
"STIRB",
"TARNEN",
"TRANSPORTIEREN",
"TREIBEN",
"UNTERHALTEN",
"VERKAUFEN",
"VERLASSEN",
"VERGESSEN",
"ZAUBERE",
"ZEIGEN",
"ZERSTOEREN",
"ZUECHTEN",
"DEFAULT",
"URSPRUNG",
"EMAIL",
"PIRATERIE",
"GRUPPE",
"SORTIEREN",
"PRAEFIX",
"PFLANZEN",
"ALLIANZ",
"BEANSPRUCHEN",
"PROMOTION",
"BEZAHLEN",
"attack",
"steal",
"besiege",
"name",
"use",
"describe",
"enter",
"guard",
"message",
"end",
"ride",
"number",
"follow",
"research",
"give",
"help",
"fight",
"ready",
"buy",
"contact",
"teach",
"study",
"make",
"move",
"password",
"recruit",
"reserve",
"route",
"sabotage",
"option",
"spy",
"quit",
"hide",
"carry",
"tax",
"entertain",
"sell",
"leave",
"forget",
"cast",
"show",
"destroy",
"grow",
"default",
"origin",
"email",
"piracy",
"group",
"sort",
"prefix",
"plant",
"alliance",
"claim",
"promote",
"pay",
};

View File

@ -11,7 +11,7 @@ static void test_init_keywords(CuTest *tc) {
test_cleanup();
lang = get_or_create_locale("en");
locale_setstring(lang, "keyword::NACH", "MOVE");
locale_setstring(lang, "keyword::move", "MOVE");
init_keywords(lang);
CuAssertIntEquals(tc, K_MOVE, get_keyword("move", lang));
test_cleanup();
@ -22,20 +22,22 @@ static void test_init_keyword(CuTest *tc) {
test_cleanup();
lang = get_or_create_locale("de");
init_keyword(lang, K_MOVE, "nach");
init_keyword(lang, K_STUDY, "lernen");
init_keyword(lang, K_MOVE, "NACH");
init_keyword(lang, K_STUDY, "LERNEN");
init_keyword(lang, K_DESTROY, "ZERSTOEREN");
CuAssertIntEquals(tc, K_MOVE, get_keyword("nach", lang));
CuAssertIntEquals(tc, K_STUDY, get_keyword("LERN", lang));
CuAssertIntEquals(tc, K_STUDY, get_keyword("LERNEN", lang));
CuAssertIntEquals(tc, K_STUDY, get_keyword("lerne", lang));
CuAssertIntEquals(tc, K_DESTROY, get_keyword("ZERSTÖREN", lang));
CuAssertIntEquals(tc, K_DESTROY, get_keyword("zerst\xC3\xB6ren", lang));
CuAssertIntEquals(tc, NOKEYWORD, get_keyword("potato", lang));
test_cleanup();
}
static void test_findkeyword(CuTest *tc) {
test_cleanup();
CuAssertIntEquals(tc, K_MOVE, findkeyword("NACH"));
CuAssertIntEquals(tc, K_STUDY, findkeyword("LERNEN"));
CuAssertIntEquals(tc, K_MOVE, findkeyword("move"));
CuAssertIntEquals(tc, K_STUDY, findkeyword("study"));
CuAssertIntEquals(tc, NOKEYWORD, findkeyword(""));
CuAssertIntEquals(tc, NOKEYWORD, findkeyword("potato"));
}
@ -45,8 +47,8 @@ static void test_get_keyword_default(CuTest *tc) {
test_cleanup();
lang = get_or_create_locale("en");
CuAssertIntEquals(tc, NOKEYWORD, get_keyword("potato", lang));
CuAssertIntEquals(tc, K_MOVE, get_keyword("NACH", lang));
CuAssertIntEquals(tc, K_STUDY, get_keyword("LERNEN", lang));
CuAssertIntEquals(tc, K_MOVE, get_keyword("move", lang));
CuAssertIntEquals(tc, K_STUDY, get_keyword("study", lang));
}
#define SUITE_DISABLE_TEST(suite, test) (void)test

View File

@ -225,6 +225,35 @@ void log_warning(const char *format, ...)
}
}
void log_error_n(const char *format, ...)
{
const char * prefix = "ERROR";
const int mask = LOG_CPERROR;
/* write to the logfile, always */
if (logfile && (log_flags & mask)) {
va_list args;
va_start(args, format);
_log_write(logfile, 0, prefix, format, args);
va_end(args);
}
/* write to stderr, if that's not the logfile already */
if (logfile!=stderr && (log_stderr & mask)) {
int dupe = check_dupe(format, prefix);
if (!dupe) {
va_list args;
va_start(args, format);
_log_write(stderr, stdio_codepage, prefix, format, args);
fputc('\n', logfile);
va_end(args);
}
}
if (log_flags & LOG_FLUSH) {
log_flush();
}
}
void log_error(const char *format, ...)
{
const char * prefix = "ERROR";

View File

@ -22,6 +22,7 @@ extern "C" {
/* use macros above instead of these: */
extern void log_warning(const char *format, ...);
extern void log_error(const char *format, ...);
extern void log_error_n(const char *format, ...);
extern void log_debug(const char *format, ...);
extern void log_info(const char *format, ...);
extern void log_printf(FILE * ios, const char *format, ...);