[sane-devel] Error at translation

Henning Meier-Geinitz henning@meier-geinitz.de
Wed, 13 Oct 2004 17:19:27 +0200


On Wed, Oct 13, 2004 at 04:33:59PM +0200, Mogens Jaeger wrote:
> When I in emacs runs the 'Validate' command, on the sane-backends da.po 
> file, I get the folloving error:
> cd ~/Oversaettelse/Sane-backends-1.0.15/
> msgfmt --statistics -c -v -o /dev/null
> /home/mogens/Oversaettelse/Sane-backends-1.0.15/sane-backends.da.po
> /home/mogens/Oversaettelse/Sane-backends-1.0.15/sane-backends.da.po:1268:
> 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the
> directive number 1, the character 'b' is not a valid conversion specifier.

I have also gotten similar messages while updating .de.po.

As far as I can see xgettext tries to be intelligent by marking
everything that containts a % as c-format. It's not intelligent
enough to really find out which string is intended as a format string
and which is not.

We could use the flag option for xgettext:

$(XGETTEXT) -dsane-backends -kSANE_I18N --flag=SANE_I18N:1:no-c-format $(TMP_FILE_DIR)/*.*

That marks all strings as "no-c-format". However, I don't know how
compatible that is.

Other ideas?