[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gettext] [Translation-team-de] Fehler in der Übersetzung von G
From: |
Bruno Haible |
Subject: |
Re: [bug-gettext] [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
- Re: [bug-gettext] [Translation-team-de] Fehler in der Übersetzung von GNU make,
Bruno Haible <=