diff --git a/src/common/kernel/battle.c b/src/common/kernel/battle.c
index 85d41bdc9..13e940623 100644
--- a/src/common/kernel/battle.c
+++ b/src/common/kernel/battle.c
@@ -2725,12 +2725,13 @@ print_header(battle * b)
bfaction * bf;
for (bf=b->factions;bf;bf=bf->next) {
+ message * m;
faction * f = bf->faction;
const char * lastf = NULL;
boolean first = false;
side * s;
- strcpy(buf, "Der Kampf wurde ausgelöst von ");
+ buf[0] = 0;
for (s=b->sides; s; s=s->next) {
fighter *df;
for (df=s->fighters;df;df=df->next) {
@@ -2743,15 +2744,22 @@ print_header(battle * b)
if (seematrix(f, s) == true)
lastf = sidename(s, false);
else
- lastf = "einer unbekannten Partei";
+ lastf = LOC(f->locale, "unknown_faction_dative");
break;
}
}
}
- if (first) strcat(buf, " und ");
+ if (first) {
+ strcat(buf, " ");
+ strcat(buf, LOC(f->locale, "and"));
+ strcat(buf, " ");
+ }
if (lastf) strcat(buf, lastf);
strcat(buf, ".");
- fbattlerecord(b, f, buf);
+
+ m = msg_message("battle::header", "factions", buf);
+ message_faction(b, f, m);
+ msg_release(m);
}
}
diff --git a/src/common/kernel/reports.c b/src/common/kernel/reports.c
index e7e6ac47d..52a1d24dd 100644
--- a/src/common/kernel/reports.c
+++ b/src/common/kernel/reports.c
@@ -438,7 +438,7 @@ bufunit(const faction * f, const unit * u, int indent, int mode)
}
}
if (getguard(u)) {
- rsize = strlcpy(bufp, ", bewacht die Region", size);
+ rsize = strlcpy(bufp, LOC(f->locale, "unit_guards"), size);
if (rsize>size) rsize = size-1;
size -= rsize;
bufp += rsize;
diff --git a/src/common/spells/combatspells.c b/src/common/spells/combatspells.c
index 7ee7ab0eb..d9fd4e2df 100644
--- a/src/common/spells/combatspells.c
+++ b/src/common/spells/combatspells.c
@@ -138,12 +138,9 @@ sp_kampfzauber(fighter * fi, int level, double power, spell * sp)
force = lovar(get_force(power,10));
}
- sprintf(buf, "%s zaubert %s", unitname(fi->unit),
- spell_name(sp, default_locale));
-
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE);
if (enemies==0) {
- m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
message_all(b, m);
msg_release(m);
return 0;
@@ -174,18 +171,18 @@ sp_versteinern(fighter * fi, int level, double power, spell * sp)
int force, enemies;
int stoned = 0;
- sprintf(buf, "%s zaubert %s", unitname(fi->unit),
- spell_name(sp, default_locale));
-
force = lovar(get_force(power, 0));
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(fi->unit),
+ spell_name(sp, default_locale));
+
battlerecord(b, buf);
while (force && stoned < enemies) {
@@ -225,9 +222,6 @@ sp_stun(fighter * fi, int level, double power, spell * sp)
if (power <= 0) return 0;
- sprintf(buf, "%s zaubert %s", unitname(fi->unit),
- spell_name(sp, default_locale));
-
switch(sp->id) {
case SPL_SHOCKWAVE:
force = lovar(get_force(power,1));
@@ -238,11 +232,14 @@ sp_stun(fighter * fi, int level, double power, spell * sp)
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(fi->unit),
+ spell_name(sp, default_locale));
+
battlerecord(b, buf);
stunned = 0;
@@ -370,17 +367,17 @@ sp_sleep(fighter * fi, int level, double power, spell * sp)
int k = 0;
/* Immer aus der ersten Reihe nehmen */
- sprintf(buf, "%s zaubert %s", unitname(mage),
- spell_name(sp, default_locale));
force = lovar(power * 25);
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(mage),
+ spell_name(sp, default_locale));
battlerecord(b, buf);
while (force && enemies) {
@@ -514,17 +511,17 @@ sp_mindblast(fighter * fi, int level, double power, spell * sp)
int force, enemies;
int k = 0;
- sprintf(buf, "%s zaubert %s", unitname(mage),
- spell_name(sp, default_locale));
force = lovar(power * 25);
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(mage),
+ spell_name(sp, default_locale));
battlerecord(b, buf);
while (force && enemies) {
@@ -578,8 +575,6 @@ sp_dragonodem(fighter * fi, int level, double power, spell * sp)
int killed = 0;
const char *damage;
- sprintf(buf, "%s zaubert %s", unitname(fi->unit),
- spell_name(sp, default_locale));
/* 11-26 HP */
damage = spell_damage(4);
/* Jungdrache 3->54, Drache 6->216, Wyrm 12->864 Treffer */
@@ -588,28 +583,27 @@ sp_dragonodem(fighter * fi, int level, double power, spell * sp)
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ struct message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
+ } else {
+ struct message * m;
+
+ at.fighter = fi;
+ at.index = 0;
+
+ while (force && killed < enemies) {
+ dt = select_enemy(fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE);
+ assert(dt.fighter);
+ --force;
+ killed += terminate(dt, at, AT_COMBATSPELL, damage, false);
+ }
+
+ m = msg_message("battle::combatspell", "mage spell dead", fi->unit, sp, killed);
+ message_all(b, m);
+ msg_release(m);
}
- scat(":");
- battlerecord(b, buf);
-
- at.fighter = fi;
- at.index = 0;
-
- while (force && killed < enemies) {
- dt = select_enemy(fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE);
- assert(dt.fighter);
- --force;
- killed += terminate(dt, at, AT_COMBATSPELL, damage, false);
- }
-
- sprintf(buf, "%d Personen %s getötet",
- killed, killed == 1 ? "wurde" : "wurden");
-
- scat(".");
- battlerecord(b, buf);
return level;
}
@@ -626,19 +620,19 @@ sp_immolation(fighter * fi, int level, double power, spell * sp)
cvector *fgs;
void **fig;
- sprintf(buf, "%s zaubert %s", unitname(fi->unit),
- spell_name(sp, default_locale));
/* 2d4 HP */
damage = spell_damage(5);
/* Betrifft alle Gegner */
force = 99999;
if (!count_enemies(b, fi, FIGHT_ROW, AVOID_ROW, SELECT_ADVANCE|SELECT_FIND)) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(fi->unit),
+ spell_name(sp, default_locale));
battlerecord(b, buf);
at.fighter = fi;
@@ -680,8 +674,6 @@ sp_drainodem(fighter * fi, int level, double power, spell * sp)
int killed = 0;
const char *damage;
- sprintf(buf, "%s zaubert %s", unitname(fi->unit),
- spell_name(sp, default_locale));
/* 11-26 HP */
damage = spell_damage(4);
/* Jungdrache 3->54, Drache 6->216, Wyrm 12->864 Treffer */
@@ -690,11 +682,13 @@ sp_drainodem(fighter * fi, int level, double power, spell * sp)
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(fi->unit),
+ spell_name(sp, default_locale));
battlerecord(b, buf);
at.fighter = fi;
@@ -863,25 +857,25 @@ sp_chaosrow(fighter * fi, int level, double power, spell * sp)
void **fig;
int k = 0;
+ if (!count_enemies(b, fi, FIGHT_ROW, NUMROWS, SELECT_ADVANCE|SELECT_FIND)) {
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
+ return 0;
+ }
+
switch (sp->id) {
case SPL_CHAOSROW:
- sprintf(buf, "%s murmelt eine düster klingende Formel", unitname(mage));
+ sprintf(buf, "%s murmelt eine düster klingende Formel. ", unitname(mage));
power *= 40;
break;
case SPL_SONG_OF_CONFUSION:
- sprintf(buf, "%s stimmt einen seltsamen Gesang an", unitname(mage));
+ sprintf(buf, "%s stimmt einen seltsamen Gesang an. ", unitname(mage));
power = get_force(power, 5);
break;
}
- if (!count_enemies(b, fi, FIGHT_ROW, NUMROWS, SELECT_ADVANCE|SELECT_FIND)) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
- return 0;
- }
- scat(". ");
-
fgs = fighters(b, fi->side, FIGHT_ROW, NUMROWS, FS_ENEMY);
v_scramble(fgs->begin, fgs->end);
@@ -1140,15 +1134,15 @@ sp_frighten(fighter * fi, int level, double power, spell * sp)
df_malus = 2;
force = (int)get_force(power, 2);
- sprintf(buf, "%s zaubert %s", unitname(mage),
- spell_name(sp, default_locale));
enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
- scat(":");
+ sprintf(buf, "%s zaubert %s:", unitname(mage),
+ spell_name(sp, default_locale));
battlerecord(b, buf);
while (force && enemies) {
@@ -1189,11 +1183,10 @@ sp_tiredsoldiers(fighter * fi, int level, double power, spell * sp)
int n = 0;
int force = (int)(power * power * 4);
- sprintf(buf, "%s zaubert %s", unitname(mage),
- spell_name(sp, default_locale));
if (!count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE|SELECT_FIND)) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
@@ -1215,7 +1208,8 @@ sp_tiredsoldiers(fighter * fi, int level, double power, spell * sp)
--force;
}
- scat(": ");
+ sprintf(buf, "%s zaubert %s:", unitname(mage),
+ spell_name(sp, default_locale));
if (n == 0) {
scat("Der Zauber konnte keinen Krieger ermüden.");
} else if (n == 1) {
@@ -1236,8 +1230,6 @@ sp_windshield(fighter * fi, int level, double power, spell * sp)
int force, at_malus;
int enemies;
- sprintf(buf, "%s zaubert %s", unitname(mage),
- spell_name(sp, default_locale));
switch(sp->id) {
case SPL_WINDSHIELD:
force = (int)get_force(power,4);
@@ -1250,8 +1242,9 @@ sp_windshield(fighter * fi, int level, double power, spell * sp)
}
enemies = count_enemies(b, fi, BEHIND_ROW, BEHIND_ROW, SELECT_ADVANCE);
if (!enemies) {
- scat(", aber niemand war in Reichweite.");
- battlerecord(b, buf);
+ message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp);
+ message_all(b, m);
+ msg_release(m);
return 0;
}
@@ -1271,7 +1264,8 @@ sp_windshield(fighter * fi, int level, double power, spell * sp)
}
}
- scat(": ");
+ sprintf(buf, "%s zaubert %s:", unitname(mage),
+ spell_name(sp, default_locale));
scat("Ein Sturm kommt auf und die Schützen können kaum noch zielen.");
battlerecord(b, buf);
return level;
diff --git a/src/res/de/strings.xml b/src/res/de/strings.xml
index 4de380443..11103c599 100644
--- a/src/res/de/strings.xml
+++ b/src/res/de/strings.xml
@@ -6517,6 +6517,14 @@
Unbekannte Partei
unknown faction
+
+ einer unbekannten Partei
+ an unknown faction
+
+
+ und
+ and
+
Das Schiff des Elfen hat ein rotes Segel
@@ -6810,4 +6818,8 @@
stones
+
+ bewacht die Region
+ guards the region
+
diff --git a/src/res/messages.xml b/src/res/messages.xml
index 59f1dc32a..36e07b53e 100644
--- a/src/res/messages.xml
+++ b/src/res/messages.xml
@@ -1999,8 +1999,8 @@
"$unit($unit) $if($eq($mode,1),"reitet", "wandert") von $region($start) nach $region($end).$if($strlen($regions)," Dabei wurde $regions durchquert.","")"
- "$unit($unit) $if($eq($mode,1),"chevauche", "marche") de $region($start) vers $region($end).$regions"
- "$unit($unit) $if($eq($mode,1),"rides", "walks") from $region($start) to $region($end).$regions"
+ "$unit($unit) $if($eq($mode,1),"chevauche", "marche") de $region($start) vers $region($end) trans $regions"
+ "$unit($unit) $if($eq($mode,1),"rides", "walks") from $region($start) to $region($end)$if($strlen($regions)," by way of $regions","")."
@@ -6297,6 +6297,13 @@
"The wormhole in $region($region) disappears."
"The wormhole in $region($region) disappears."
+
+
+
+
+ "Der Kampf wurde ausgelöst von $factions."
+ "The battle was initiated by $factions."
+