Alvaro Herrera <alvhe...@commandprompt.com> writes: > I think it should use the %2$s style specifier in that case. This > should work:
> printf (ngettext ("One file removed, containing %2$lu bytes", > "%d files removed, containing %lu bytes", n), > n, total_bytes); How's that gonna work? In the n=1 case, printf would have no idea about the type/size of the argument it would need to skip over. I think maybe you could make it work like this: printf (ngettext ("One file removed, containing %1$lu bytes", "%2$d files removed, containing %1$lu bytes", n), total_bytes, n); but *for sure* I don't want us playing such games without a robust compile-time check on both variants of the ngettext string. I'm not real sure it's a good idea at all, because of the potential for confusing translators. Notice also that we have subtly embedded the preferred English phrase ordering here: if someone wants to pull the same type of trick in a language where the bytecount ought to come first, he's just plain out of luck. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers