diff --git a/src/common/gamecode/creport.c b/src/common/gamecode/creport.c index c491a891c..3d008bf32 100644 --- a/src/common/gamecode/creport.c +++ b/src/common/gamecode/creport.c @@ -172,7 +172,7 @@ cr_output_str_list(FILE * F, const char *title, const strlist * S, const faction #include "objtypes.h" static void -print_curses(FILE * F, const void * obj, typ_t typ, const attrib *a, int self) +print_curses(FILE * F, const locale * lang, const void * obj, typ_t typ, const attrib *a, int self) { boolean header = false; while (a) { @@ -183,7 +183,7 @@ print_curses(FILE * F, const void * obj, typ_t typ, const attrib *a, int self) c = (curse *)a->data.v; if (c->type->curseinfo) - dh = c->type->curseinfo(obj, typ, c, self); + dh = c->type->curseinfo(lang, obj, typ, c, self); if (dh == 1) { if (!header) { header = 1; @@ -437,10 +437,10 @@ cr_output_buildings(FILE * F, building * b, unit * u, int fno, faction *f) if (b->besieged) fprintf(F, "%d;Belagerer\n", b->besieged); if(bo != NULL){ - print_curses(F, b, TYP_BUILDING, b->attribs, + print_curses(F, f->locale, b, TYP_BUILDING, b->attribs, (bo->faction == f)? 1 : 0); } else { - print_curses(F, b, TYP_BUILDING, b->attribs, 0); + print_curses(F, f->locale, b, TYP_BUILDING, b->attribs, 0); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ @@ -483,10 +483,10 @@ cr_output_ship(FILE * F, const ship * s, const unit * u, int fcaptain, const fac fprintf(F, "%d;Kueste\n", w); if(shipowner(r, s) != NULL){ - print_curses(F, s, TYP_SHIP, s->attribs, + print_curses(F, f->locale, s, TYP_SHIP, s->attribs, (shipowner(r, s)->faction == f)? 1 : 0); } else { - print_curses(F, s, TYP_SHIP, s->attribs, 0); + print_curses(F, f->locale, s, TYP_SHIP, s->attribs, 0); } } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ @@ -731,7 +731,7 @@ cr_output_unit(FILE * F, const region * r, if ((u->faction == f || omniscient(f)) && u->botschaften) cr_output_str_list(F, "EINHEITSBOTSCHAFTEN", u->botschaften, f); - print_curses(F, u, TYP_UNIT, u->attribs, (u->faction == f)? 1 : 0); + print_curses(F, f->locale, u, TYP_UNIT, u->attribs, (u->faction == f)? 1 : 0); } /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ @@ -1199,7 +1199,7 @@ report_computer(FILE * F, faction * f, const seen_region * seen, } } - print_curses(F, r, TYP_REGION, r->attribs, 0); + print_curses(F, f->locale, r, TYP_REGION, r->attribs, 0); /* describe both passed and inhabited regions */ show_active_spells(r); { diff --git a/src/common/gamecode/report.c b/src/common/gamecode/report.c index 9a69cd27d..8ebd402d3 100644 --- a/src/common/gamecode/report.c +++ b/src/common/gamecode/report.c @@ -664,7 +664,7 @@ hat_in_region(item_t it, region * r, faction * f) } static void -print_curses(FILE *F, const void * obj, typ_t typ, const attrib *a, int self, int indent) +print_curses(FILE *F, const locale * lang, const void * obj, typ_t typ, const attrib *a, int self, int indent) { for(;a;a=a->next) { int dh = 0; @@ -672,7 +672,7 @@ print_curses(FILE *F, const void * obj, typ_t typ, const attrib *a, int self, in if (fval(a->type, ATF_CURSE)) { curse *c = (curse *)a->data.v; if (c->type->curseinfo) - dh = c->type->curseinfo(obj, typ, c, self); + dh = c->type->curseinfo(lang, obj, typ, c, self); if (dh == 1) { rnl(F); rparagraph(F, buf, indent, 0); @@ -775,11 +775,11 @@ rpunit(FILE * F, const faction * f, const unit * u, int indent, int mode) if(ug) { int i; for(i=0; imembers; i++) { - print_curses(F, u, TYP_UNIT, ug->unit_array[i]->attribs, (u->faction == f)? 1 : 0, indent); + print_curses(F, f->locale, u, TYP_UNIT, ug->unit_array[i]->attribs, (u->faction == f)? 1 : 0, indent); } } else #endif /* USE_UGROUPS */ - print_curses(F, u, TYP_UNIT, u->attribs, (u->faction == f)? 1 : 0, indent); + print_curses(F, f->locale, u, TYP_UNIT, u->attribs, (u->faction == f)? 1 : 0, indent); } #ifdef USE_UGROUPS @@ -1281,7 +1281,7 @@ describe(FILE * F, const region * r, int partial, faction * f) n = 0; /* Wirkungen permanenter Sprüche */ - print_curses(F, r, TYP_REGION, r->attribs, 0, 0); + print_curses(F, f->locale, r, TYP_REGION, r->attribs, 0, 0); /* Produktionsreduktion */ a = a_find(r->attribs, &at_reduceproduction); @@ -1785,10 +1785,10 @@ report_building(FILE *F, const region * r, const building * b, const faction * f /* Leere Burgen verursachten sonst segfault! */ if(buildingowner(r,b) != NULL){ - print_curses(F, b, TYP_BUILDING, b->attribs, + print_curses(F, f->locale, b, TYP_BUILDING, b->attribs, (buildingowner(r,b)->faction == f)? 1 : 0, 4); } else { - print_curses(F, b, TYP_BUILDING, b->attribs, 0, 4); + print_curses(F, f->locale, b, TYP_BUILDING, b->attribs, 0, 4); } for (u = r->units; u; u = u->next) @@ -2181,10 +2181,10 @@ report(FILE *F, faction * f, const faction_list * addresses, /* Leere Schiffe verursachten sonst segfault! */ if(shipowner(r,sh) != NULL){ - print_curses(F, sh, TYP_SHIP, sh->attribs, + print_curses(F, f->locale, sh, TYP_SHIP, sh->attribs, (shipowner(r,sh)->faction == f)? 1 : 0, 4); } else { - print_curses(F, sh, TYP_SHIP, sh->attribs, 0, 4); + print_curses(F, f->locale, sh, TYP_SHIP, sh->attribs, 0, 4); } for (u = r->units; u; u = u->next) diff --git a/src/common/kernel/curse.c b/src/common/kernel/curse.c index 8167d30b7..d76e971f1 100644 --- a/src/common/kernel/curse.c +++ b/src/common/kernel/curse.c @@ -926,7 +926,7 @@ cinfo_astralblock(void * obj, typ_t typ, curse *c, int self) } /* C_PEACE */ static int -cinfo_peace(void * obj, typ_t typ, curse *c, int self) +cinfo_peacezone(void * obj, typ_t typ, curse *c, int self) { unused(typ); unused(obj); @@ -1420,7 +1420,7 @@ static curse_type cursedaten[MAXCURSE] = CURSETYP_NORM, 0, NO_MERGE, "Dieser machtvoller Beeinflussungszauber erstickt jeden Streit schon im " "Keim.", - (cdesc_fun)cinfo_peace + (cdesc_fun)cinfo_peacezone }, { /* erschwert geordnete Bewegungen */ "disorientationzone", diff --git a/src/common/kernel/curse.h b/src/common/kernel/curse.h index e5212e59e..35f54033a 100644 --- a/src/common/kernel/curse.h +++ b/src/common/kernel/curse.h @@ -219,7 +219,7 @@ typedef struct curse_type { unsigned int mergeflags; const char *info_str; /* Wirkung des curse, wird bei einer gelungenen Zauberanalyse angezeigt */ - int (*curseinfo)(const void*, int, curse*, int); + int (*curseinfo)(const locale*, const void*, int, curse*, int); void (*change_vigour)(curse*, int); int (*read)(FILE * F, curse * c); int (*write)(FILE * F, const curse * c); diff --git a/src/res/de/messages.xml b/src/res/de/messages.xml index c07362d56..030c140e2 100644 --- a/src/res/de/messages.xml +++ b/src/res/de/messages.xml @@ -7484,7 +7484,7 @@ "$unit($unit) verschließt eines der Schlösser in $region($region) mit $if($eq($key,1),"dem Achatenen Schlüssel","dem Saphirnen Schlüssel")." - "$unit($unit) locks one of the locks in $region($region) with $if($eq($key,1),"the Agate Key","the Sapphire Key")." + "$unit($unit) locks one of the locks in $region($region) with $if($eq($key,1),"the Agate Key","the Sapphire Key")." @@ -7494,7 +7494,7 @@ "$unit($unit) öffnet eines der Schlösser in $region($region) mit $if($eq($key,1),"dem Achatenen Schlüssel","dem Saphirnen Schlüssel")." - "$unit($unit) unlocks one of the locks in $region($region) with $if($eq($key,1),"the Agate Key","the Sapphire Key")." + "$unit($unit) unlocks one of the locks in $region($region) with $if($eq($key,1),"the Agate Key","the Sapphire Key")." @@ -7506,5 +7506,82 @@ "$unit($unit) in $region($region): '$command' - Hier ist kein passendes Schloss." "$unit($unit) in $region($region): '$command' - No fitting lock can be found here." + + + + + "Dichte Nebel bedecken diese Woche die Region. Keine Einheit schafft es, diese Nebel zu durchdringen und die Region zu verlassen. ($int36($id))" + "heavy fog makes it impossible to leave the region. ($int36($id))" + + + + + + "Der Zahn der Zeit kann diesen Mauern nichts anhaben. ($int36($id))" + "" + + + + + + "Untote schrecken vor dieser Region zurück. ($int36($id))" + "" + + + + + + "In dieser Gegend steht das Korn besonders gut im Feld. ($int36($id))" + "" + + + + + + "In dieser Gegend herrscht eine Dürre. ($int36($id))" + "" + + + + + + "Alle Leute in der Region haben Schlafstörungen. ($int36($id))" + "" + + + + + + "Die Bauern sind unzufrieden. ($int36($id))" + "" + + + + + + "Es herrscht eine fröhliche und ausgelassene Stimmung. ($int36($id))" + "" + + + + + + "Etwas verhindert den Kontakt zur Realität. ($int36($id))" + "" + + + + + + "Die ganze Region ist von einer friedlichen Stimmung erfasst. ($int36($id))" + "" + + + + + + "Ein Schleier der Verwirrung liegt über der Region. ($int36($id))" + "" +