[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [LCFC] po://dpkg/po/de.po



Hallo,

Helge Kreutzmann schrieb:
Hallo,
On Sun, Jul 30, 2006 at 02:58:05PM +0200, Holger Wansing wrote:
#: src/help.c:227
#, c-format, fuzzy
msgid "error un-catching signal %s: %s\n"
msgstr "Fehler beim Ent-abfangen des Signals %s: %s\n"

Könnte man hier un-catching nicht mit ignorieren übersetzen?
catch signal wäre doch, dass der entsprechende Prozess das Signal
empfängt und darauf reagiert, und un-catch wäre das Gegenteil ...

(siehe auch der nächste String, der im Quelltext in ähnlichem
Kontext steht)

Oder vielleicht auch
"Fehler beim Ignorieren (un-catching) des Signals %s: %s\n"

Ich bin mir hier nicht sicher, was die Zeichenkette aussagen soll, für
mich klingt es so, als ob der Benutzer darum gebeten habe, ein
bestimmtes Signal in Zukunft nicht mehr abzufangen, und das nicht
eingestellt werden kann (und dann die Fehlermeldung erscheint). Durch
ein »ignorieren« würde dieser Zusammenhang, wenn er denn stimmt, nicht
mehr sichtbar. Andererseits dürfte die Meldung mit »ignorieren«
deutlich verständlicher sein als »Ent-abfangen«.
Sven: Kannst Du ev. etwas mehr über den Hintergrund dieser Meldung
sagen, wenn ich mich recht erinnere, hattest Du doch für einige
Zeichenketten in den Quelltext geschaut, oder?

Ja, reingeschaut schon, aber was hier genau passiert, verstehe ich
nicht völlig. Hier ist der relevante Auszug:

,----
| #define NSCRIPTCATCHSIGNALS (int)(sizeof(script_catchsignallist)/sizeof(int)-1)
| static int script_catchsignallist[]= { SIGQUIT, SIGINT, 0 };
| static struct sigaction script_uncatchsignal[NSCRIPTCATCHSIGNALS];
|
| static void cu_restorescriptsignals(int argc, void **argv) {
|   int i;
|   for (i=0; i<NSCRIPTCATCHSIGNALS; i++) {
|     if (sigaction(script_catchsignallist[i],&script_uncatchsignal[i],0)) {
|       fprintf(stderr,_("error un-catching signal %s: %s\n"),
|               strsignal(script_catchsignallist[i]),strerror(errno));
|       onerr_abort++;
|     }
|   }
| }
|
| static void script_catchsignals(void) {
|   int i;
|   struct sigaction catchsig;
|
|   onerr_abort++;
|   memset(&catchsig,0,sizeof(catchsig));
|   catchsig.sa_handler= SIG_IGN;
|   sigemptyset(&catchsig.sa_mask);
|   catchsig.sa_flags= 0;
|   for (i=0; i<NSCRIPTCATCHSIGNALS; i++)
|     if (sigaction(script_catchsignallist[i],&catchsig,&script_uncatchsignal[i]))
|       ohshite(_("unable to ignore signal %s before running script"),
|               strsignal(script_catchsignallist[i]));
|   push_cleanup(cu_restorescriptsignals,~0, 0,0, 0);
|   onerr_abort--;
| }
`----

Alles klar? ;-)

Ich glaube, es geht wohl darum, dass dpkg die Signale SIGQUIT und
SIGINT abfängt und ignoriert, während das Skript läuft (Achtung: nur
der dpkg-Prozess, nicht das Skript selbst ignoriert das Signal!).  Ich
habe das selbst ausprobiert: Ein Paket mit lang laufendem
postinst-Skript installiert und an den dpkg-Prozess die Signale
SIGQUIT bzw. SIGINT geschickt, nichts passierte.

Falls das nicht eingerichtet werden kann (sigaction() schlägt fehl),
erscheint die Fehlermeldung

"unable to ignore signal %s before running script".

Nach Ende des Skripts ignoriert dpkg die Signale nicht mehr, es sei
denn, sigaction() schlägt fehl:

"error un-catching signal %s: %s\n".

Ansonsten bin ich, summa summarum, auch für »ignorieren«.

Falls meine Deutung richtig ist, wäre das äußerst unglücklich, denn
das Signal soll ja gerade nicht mehr ignoriert werden. ;-) Falls
niemand eine bessere Idee hat, würde ich es bei der jetzigen
Übersetzung belassen. Die Meldung wird wahrscheinlich sowieso niemand
zu Gesicht bekommen, da ich mir nicht vorstellen kann, dass
sigaction() in dieser Situation fehlschlägt.


In dselect taucht die gleiche Situation übrigens auch auf,
dort hat Michael Piefel so übersetzt:

msgid "error un-catching signal %d: %s\n"
msgstr "Fehler beim Wiederwerfen von Signal %d: %s\n"

Auch nicht gerade glücklich, oder? :-(

Freundliche Grüße,

Sven



Reply to: