Markus Neteler wrote:

> just found this one while running "make pot" (GRASs 6.4.svn):
> 
> Generating grasswxpy...
> xgettext -k_ -o ./templates/grasswxpy.pot `find ../gui/wxpython -name
> '*.py' | xargs grep -l "_(\""`
> ../gui/wxpython/gui_modules/colorrules.py:391: warning: 'msgid' format string 
> with unnamed arguments cannot be properly localized:
>                                                         The translator cannot 
> reorder the arguments.
>                                                         Please consider using 
> a format string with named arguments,

391            self.cr_label.SetLabel(_('Enter raster cat values or percents 
(range = %d-%d)' %
392                                     (self.rast['min'], self.rast['max'])))

Note that this issue also arises in C: the use of e.g. "%1$d" in
format strings isn't part of C89, although it is in C99 and SUS.

It's almost invariably possible to come up with a form of wording
which preserves the original order, e.g. "(min=%d, max=%d)".

I would guess that this specific case might be an issue for
right-to-left languages (we do have a partial Arabic translation for
grassmods and grasslibs, but not grasswxpy).

If we want to eliminate the warning, the solution is:

            self.cr_label.SetLabel(_('Enter raster cat values or percents 
(range = %(min)d-%(min)d)' %
                                     dict(min = self.rast['min'], max = 
self.rast['max'])))

-- 
Glynn Clements <[EMAIL PROTECTED]>
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to