"Richard W.M. Jones" <rjones@xxxxxxxxxx> wrote: > On Fri, Mar 28, 2008 at 12:15:04PM +0100, Jim Meyering wrote: >> But there's nothing we can do about the latter, and there *is* something >> we can do about the former: precede with "%s". Of course, gettext tools >> like msgmerge are careful to ensure that %-directives in translations >> match those in the original, so it's not a problem, in general. > > Does msgmerge distinguish between ordinary strings and format strings, > eg. puts (_("SQL lets you write LIKE '%string%'")); ? Yes, though actually it's xgettext that does the checking, and you tell it which functions take format strings and how. Here's part of coreutils' bootstrap.conf: # Additional xgettext options to use. Use "\\\newline" to break lines. XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ --from-code=UTF-8\\\ --flag=asprintf:2:c-format\\\ --flag=asnprintf:3:c-format\\\ --flag=error:3:c-format\\\ --flag=error_at_line:5:c-format\\\ --flag=vasprintf:2:c-format\\\ --flag=vasnprintf:3:c-format\\\ --flag=wrapf:1:c-format\\\ --flag=xasprintf:1:c-format\\\ --flag=xfprintf:2:c-format\\\ --flag=xprintf:1:c-format\\\ ' libvirt could use something similar. This is yet another reason to try to avoid adding a new error-printing function per subsystem. -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list