bug-make
[Top][All Lists]
Advanced

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

Re: [Translation-team-de] Fehler in der Übersetzung von GNU make


From: Bruno Haible
Subject: Re: [Translation-team-de] Fehler in der Übersetzung von GNU make
Date: Tue, 29 Nov 2016 17:54:24 +0100
User-agent: KMail/4.8.5 (Linux/3.8.0-44-generic; KDE/4.8.5; x86_64; ; )

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]