Hello Paul, Florian Zeitz wrote to the German translation team on 2016-11-28: > Guten Tag zusammen, > > mir ist heute zu meiner großen Verwunderung ein `make --debug` Aufruf > gesegfaulted. Nach einigem Fehler suchen stellt sich heraus das dafür > folgende Übersetzung verantwortlich war: > > #: file.c:412 > msgid "Removing intermediate files...\n" > msgstr "Die übergangsweise angelegte Datei „%s“ wird gelöscht...\n" > > Ich würde mich freuen wenn diese korrigiert würde. > > Mit freundlichen Grüßen > Florian Zeitz
He's saying that 'make' crashed because of this translation. It can be found in the make/de.po file of GNU make 4.1 and newer. The workflow with PO files is designed in such a way that even if translators make a mistake like this (providing a translation with %s for a string that doesn't contain %s), "msgfmt -c" will catch it. BUT "msgfmt -c" makes this check only for a message marked with '#, c-format': de.po:272: number of format specifications in 'msgid' and 'msgstr' does not match msgfmt: found 1 fatal error The question thus is: Why was this message not marked with '#, c-format' in the make.pot file? The answer is: because it is an argument to the macro DB (defined in debug.h), and xgettext doesn't know that DB behaves like printf. Compare the results of $ xgettext -o - --keyword=_ --keyword=N_ file.c and $ xgettext -o - --keyword=_ --keyword=N_ --flag=DB:2:c-format file.c So, the problem will be fixed if you add the option --flag=DB:2:c-format to the variable XGETTEXT_OPTIONS in the file po/Makevars. Regards, Bruno _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make