$header "const char *chkr_message[]"
$declare "extern const char *chkr_message[];"
$hformat "#define %1	chkr_message[%n]"

######## for parse-args.c
M_COPYRIGHT		"Checker %s (%s) Copyright (C) 1996 Tristan Gingold.\n"
M_IS_RUNNING		"`%s' in Arbeit "
M_UNKNOWN_OP		"Checker kennt diese Option nicht: %s\n"
M_UNKNOWN_DISABLE	"Checker kennt diese `disable' Option nicht: %s\n"
M_LOPTION_NEED_ARG	"Option `%s' braucht ein Argument.\n"
M_SOPTION_NEED_ARG	"Option `%s' (Kurzform) braucht ein Argument.\n"
M_LOPTION_NALLOW_ARG	"Option `%s' darf kein Argument haben.\n"
M_SOPTION_NALLOW_ARG	"Option `%s' (Kurzform) darf kein Argument haben.\n"
M_OPTION_ILLEGAL	"Ungültige Option `%s'.\n"
M_PRGNAME_NOT_FOUND	"Kann den Dateinamen nicht finden.\n"
M_ARGV0_IS		"Ich heiße (gemäß argv[0]) %s\n"
M_STOPPING_MYSELF	"Stop vor main. Weiter mit `fg' oder `kill -%d %d'\n"
M_ALREADY_INIT		"Crt0.o wird zweimal aufgerufen. Breche ab\n"
M_TOTAL_GARBAGE_TIME	"Zeit zum Garbage Finden: %d sec(s) %d usecs.\n"
######## for chkr-syscall.c
M_IOCTL_UNIMPLEMENT	"Habe leider diese ioctl (0x%x) nicht eingebaut.\n"
M_FCNTL_UNIMPLEMENT	"Habe leider diese fcntl (0x%x) nicht eingebaut.\n"
M_SYSCALL_UNIMPLEMT	"Habe leider diesen syscall (0x%x) nicht eingebaut.\n"
M_IPC_UNIMPLEMENT	"Habe leider diesen ipc syscall (0x%x) nicht eingebaut.\n"
M_SEND_DESCRIPTION	"Senden Sie bitte eine Beschreibung an Checkers Autor.\n"
######### for symtab.c
M_STACK_FRAMES_ARE	"Stapelrahmen:\n"
M_CANT_FIND_MAIN	"Kann den Rahmen von main nicht finden; Pech!\n"
M_CANT_OPEN_BINARY	"Kann Binärdatei `%s' nicht öffnen.\nAbbruch\n"
M_CANT_F_GOOD_INFO	"Kann in Binärdatei nichts Gutes finden\nAbbruch\n"
M_PC__NOSYMTAB		"$\tpc=0x%08x\n"
M_PC___IN___AT_		"\tpc=0x%08x in %s in %s:%d\n"
M_UNKNOWN		"Unbekannt"
M_BAD_STR		"<ungültiger Zeichenkette im Tabellenindex>"
######### for utils.c
M_UNKNOWN_MALLOC0	"Unbekanntes Argument %s für `--malloc0=' Option.\n"
M_MALLOC0_WARNING	"Warnung: Gebrauch von %s mit Größe 0\n"
M_C_BAD_MPLINK		"Ungültiger prev Zeiger in mdesc 0x%x.\n"
M_C_BAD_LAST_MDESC	"Der letzte mdesc ist gar nicht der letzte...\n"
M_C_CHECK_MDESC		"Prüfung von mdesc 0x%08x:\n"
M_C_FB_OR_LB_BAD	"Ungültiger _firstblock oder _lastblock\n"
M_C_FM_OR_LM_BAD	"Ungültiger _firstmdesc oder _lastmdesc.\n"
M_C_NO_BLOCKS		"Leider keine Blöcke.\n"
M_C_FBLOCK_BAD		"Ungültiger _firstblock.\n"
M_C_LBLOCK_BAD		"Ungültiger _lastblock.\n"
M_C_BAD_LINEARITY	"Schlechte Ausrichtung der Blöcke 0x%x und 0x%x.\n"
M_C_BAD_PLINK		"Schlechter `prev' Zeiger auf Block 0x%x.\n"
M_C_BAD_BLOCK_SIZE	"Falsche Größe des Blocks 0x%x\n"
M_C_BAD_LAST_BLOCK	"Der letzte Block ist gar nicht der letzte...\n"
M_C_STOP_HERE		"Hier stop.\n"
M_C_U_AGED_BLOCK	"Block %u hat ein unbekanntes Alter.\n"
M_C_BAD_PL_YOUNGB	"Falscher `prev' Zeiger in jüngerem Block %u\n"
M_C_NON_AGED_BLOCK	"Block ohne Alter %u in Liste für mit Alter.\n"
M_C_BAD_NUM_AGED_B	"Falsche Nummer eines Block mit Alter (%d statt %d).\n"
M_C_TOO_AGED_BLOCK	"Zu viele alte Blöcke gefunden (%d statt %d).\n"
M_C_BAD_PL_F_FREEB	"Falscher `prev' Zeiger im 1. freien Block %u.\n"
M_C_FREEB_BAD_STAT	"Freier Block 0x%x hat falschen Zustand.\nAbbruch\n"
M_C_BLOCK_BAD_LIST	"Block 0x%x in Lister schlechter Blöcke.\n"
M_C_BAD_PLIN_FREEB	"Falscher `prev' Zeiger in freiem Block %u.\n"
M_C_BAD_HEAPINDEX	"Falscher _heapindex.\n"
M_C_UNKNOWN_FREEB	"Block %u ist ein unbekanner freier Block.\n"
M_C_FREE_AND_FREE	"Freier Block 0x%x gefolgt von anderem freien\n"
M_C_NO_BUSY_BLOCK	"Keine Blöck in Gebrauch.\n"
M_C_BUSY_BLOCK_ARE	"Die gebrauchten Blöcke:\n"
M_C_BLOC_N_IS_BUSY	"Block (Adresse: 0x%x), Größe %u kb in Gebrauch.\n"
M_C_BLOCK_SIZ_LESS	"Block mit Größe kleiner als %d bytes.\n"
M_C_BLOCK_AT_SIZE	"Block auf 0x%x, Größe %dKb\n"
######### for free.c
M_BAD_NLINK_4BLOCK	"Falscher next Zeiger für Block %u.\n"
M_FOUND_AGED_BLOCK	"Block ohne Alter %u in Liste mit Alter.\n"
######### for garbage.c
M_GARBAGE_TIME		"Zeit für Garbage detector: %d sec(s) %d usecs.\n"
M_NO_LEAK		"Es gibt keine Löcher.\n"
M_ONE_LEAK		"Es gibt ein Loch und %d potentielle.\n"
M_NBR_LEAKS		"Es gibt %d Löcher und %d potentielle.\n"
M_LEAKS_USE_N_BYTE	"Löcher verbrauchen %u bytes (%u KB) / %u KB.\n"
M_P_MEM_IS_LOST		"(%2d.%02d%% Speicher zerlöchert.)\n"
M_FOUND_N2_BYTES	"%u block(s) mit Größe %u gefunden.\n"
M_LOST_IS_PTR		"Block an ptr=0x%x\n"
M_BYTES_NOT_DISPLAYED	"%d bytes nicht einzeln identifiziert (Schwelle).\n"
M_NO_INUSE		"Kein Block in Gebrauch.\n"
M_ONE_INUSE		"1 Block in Gebrauch.\n"
M_NBR_INUSE		"%d Blöcke in Gebrauch.\n"
M_INUSE_USE_N_BYTE	"Gebrauchte Blöcke belegen %u bytes (%u KB) / %u KB.\n"
M_CANT_USE_SYMTAB	"Kein Zugriff auf die Symboltabelle.\n"
######### for maccess.c
M_NO_BM_4ADDRESS	"Kein bitmap für diese Adresse.\n"
M_TRY_TO_EXECUTE	"Versuch eine Funktion bei 0x%x in %s aufzurufen.\n"
M_BO_NOT_ALIGNED	"Hmmm, bit_offset nicht ausgerichtet!! Vergiß es.\n"
M_ERR_SET_RIGHT		"Fehler in chkr_set_right\n"
M_BAD_LEN_IN_SR		"len > bitmem.length oder len == 0\n"
M_ACC_DATA_ALIGN	"Bei Datenzugriff auf 0x%08x, Größe: %d, Grenze: %d.\n"
M_PROD_BUS_ERR		"DAS SOLLTE EINEN BUS ERROR GEBEN.\n"
M_SRC_IN_CP_BM		"Fehler mit `src' in `chkr_copy_bm'\n"
M_DEST_IN_CP_BM		"Fehler mit `dest' in `chkr_copy_bm'\n"
M_ALIGN_IN_CP_BM	"Schlechte Ausrichtung in `chkr_copy_bm'\n"
M_PROF_INFO_HERE	"Und jetzt die Profile Information:\n"
######## Take care, in next, one %s should be omitted as `mal' is not
######## different in singular and plural
M_HANDLED_N_TIME	"Auf %s wurde %d mal zugegriffen%s.\n"
M_HANDLED_MEM		"Das Programm griff auf den Speicher %u mal zu.\n"
M_BM_CALLED		"Die Stapelgrenze wurde %u mal korregiert\n"
M_ACC_ERR_REP		"%u Speicherzugriffehler gemeldet.\n"
M_ACC_ERR_TOT		"%u Speicherzugriffehler.\n"
M_ACC_MALLOC_CALLS	"%u Aufrufe von malloc/mmalloc.\n"
M_ACC_FREE_CALLS	"%u Aufrufe von free/mfree.\n"
M_ACC_REALLOC_CALLS	"%u Aufrufe von realloc/mrealloc.\n"
M_NULL_ZONE		"NULL Zone"
M_TEXT_SEGMENT		"Text Segment"
M_DATA_SEGMENT		"Daten Segment"
M_HEAP_BRK_SEGMENT	"Haufen (sbrk)"
M_HEAP_MAP_SEGMENT	"Haufen (mmap)"
M_STACK_SEGMENT		"Stapel"
M_MMAP_SEGMENT		"mmap Zone"
M_SHM_SEGMENT		"shared memory"
M_MAPPED_BY		"Die Region wurde gemappet von:\n"
M_ATTACHED_BY		"Der shared memory wurde angehängt von:\n"
M_BLOCK_ALLO_FRM	"Der Block wurde reserviert von:\n"
M_KNOW_STACK_LIM	"bekannte Stapelgrenze= %08p\n"
M_AFTER_LAST_BLOCK	"nach dem letzten Block.\n"
M_INSIDE_FBLOCK		"innerhalb eines freien Blocks.\n"
M_BLOCK_ID		" (Start: 0x%x, Länge: %u, mdesc: 0x%x).\n"
M_BEFORE_BLOCK		"%d bytes vor einem Block"
M_INSIDE_BLOCK		"%d bytes in einen Block"
M_AFTER_BLOCK		"%d bytes nach einem Block"
M_N_FREE_CALLED		"free wurde %d mal aufgerufen seit dem dieser Block zurückgegeben wurde von:\n"
M_MDESC_CREATED_BY	"Dieser mmalloc Haufen wurde geschaffen von:\n"
M_MEM_ACCESS_ERR	"Speicherzugriffehler: %s\n"
M_ACC_ERR_WHERE		"Bei %s %d byte(s) auf Adresse %08p, innerhalb %s.\n"
M_USE_NULL_PTR		"Du bist wohl einem Nullzeiger nachgelaufen.\n"
M_PROD_SEG_FAULT	"DAS SOLLTE EINEN SEGMENTATION FAULT GEBEN.\n"
M_CANT_MODIFY_IT	"Kann nicht verändert werden.\n"
M_SIZES_FOR_OOM		"Gesamtspeicher: %u Kb;\ngesamt mit Alter: %u Kb;\ngefordert: %d b\n"
############# for fd.c
M_FILE_OPENED_BY	"Diese Datei wurde geschaffen von:\n"
M_FILE_CLOSED_BY	"Diese Datei wurde geschlossen von:\n"
############# for vprintf.c
M_FROM_CHECKER		"Von Checker (pid:%s): "
############# for signal.c
M_REC_SIGNAL		"Empfange das Signal %d (%s): "
M_SIG_IGNORED		"(ignoriert).\n"
M_SIG_DEFAULT		"(default Aktion: "
M_SIG_TERMINATE		"beende "
M_SIG_CORE		"core "
M_SIG_STOP		"stop "
M_SIG_IGNORE		"ignoriere "
M_SIG_FORCED		"erzwungen "
M_SIG_SYNCHRON		"synchron "
M_SIG_CAUGHT		"(abgefangen).\n"
M_UNKNOWN_SIG		"Unbekanntes Signal `%s'.\n"
M_BAD_REC_SIG		"Empfangenes Signal %d völlig unbekannt! Abbruch\n"
M_SYN_REC_SIG		"Checker hat synchrones Signal %s empfangen. Abbruch\n"
