Re: [PATCH/RFC] l10n: de.po: translate 39 new messages
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 17, 2013, 23:02 UTC
- Message-ID
- <7v4nf4ep73.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1906942.3yyCMUNxTB@cs-pc>
Christian Stimming <stimming@tuhh.de> writes:
Show 27 quoted lines
> Thanks for the regular update! This is great work. > > One issue with the plural form messages, though: > > Am Montag, 15. April 2013, 18:27:40 schrieb Ralf Thielow: >> #: bundle.c:186 >> -#, fuzzy, c-format >> +#, c-format >> msgid "The bundle contains this ref:" >> msgid_plural "The bundle contains these %d refs:" >> -msgstr[0] "Das Paket enthält %d Referenz" >> -msgstr[1] "Das Paket enthält %d Referenzen" >> +msgstr[0] "Das Paket enthält diese Referenz:" >> +msgstr[1] "Das Paket enthält diese %d Referenzen:" > > The msgstr[0] must still contain a %d conversion specifier (which will be > filled with the number 1) even though the translated sentence wouldn't need > the 1 anymore. The previous msgstr[0] was correct; the English singular msgid > is not. > > Technical background: The ngettext function chooses only the string itself, > which will then be fed to printf() as a second step. If the printf sees more > variadic arguments than conversion specifiers in the string, it will be > unhappy. At least that's what I remembered about the ngettext things... > > http://www.gnu.org/software/libc/manual/html_node/Advanced-gettext- > functions.html
This vaguely sounds familiar:
http://thread.gmane.org/gmane.comp.version-control.git/218173 http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms
In the English singular case, the number – always 1 – can be replaced with "one":
printf (ngettext ("One file removed", "%d files removed", n), n);This works because the ‘printf’ function discards excess arguments that are not consumed by the format string.