[Libvir] [PATCH 4/9] qemudReportError: mark for translation string args to this function
Jim Meyering
jim at meyering.net
Fri Mar 28 11:36:45 UTC 2008
"Richard W.M. Jones" <rjones at redhat.com> 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.
More information about the libvir-list
mailing list