← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1630507] [NEW] Different use of args in ungettext_lazy causes error on syncing with translation infra

 

Public bug reported:

In
http://git.openstack.org/cgit/openstack/horizon/tree/openstack_dashboard/dashboards/project/instances/workflows/create_instance.py#n214
,

If we look at strings for singular and plural on ungettext_lazy(),
singular string uses only "%(avail)i" arg,
and plural string uses both "%(req)i" and "%(avail)i" args.

In Zanata (translation platform), currently, po files on some languages
are saved if the languages are set to just use singular form.

#: openstack_dashboard/dashboards/project/instances/workflows/create_instance.py:214
#, python-format
msgid ""
"The requested instance cannot be launched as you only have %(avail)i of your "
"quota available. "
msgid_plural ""
"The requested %(req)i instances cannot be launched as you only have "
"%(avail)i of your quota available."
msgstr[0] ""
"The requested instance cannot be launched as you only have %(avail)i of your "
"quota available. "

This generates an error when msgfmt command is executed:

$ msgfmt --check-format -o /dev/null django.po
django.po:10766: a format specification for argument 'req' doesn't exist in 'msgstr[0]'
msgfmt: found 1 fatal error

Because of this occurrence, there have been job failures for Korean and Indonesian language
to import translated strings to Horizon git repository.

The current solution would be to add "%(req)i" argument on the singular
string.


Reference
[1] http://lists.openstack.org/pipermail/openstack-dev/2016-September/103941.html
[2] http://lists.openstack.org/pipermail/openstack-i18n/2016-October/002476.html

** Affects: horizon
     Importance: Undecided
         Status: New


** Tags: i18n in-stable-newton newton-backport-potential

** Description changed:

  In
  http://git.openstack.org/cgit/openstack/horizon/tree/openstack_dashboard/dashboards/project/instances/workflows/create_instance.py#n214
  ,
  
  If we look at strings for singular and plural on ungettext_lazy(),
  singular string uses only "%(avail)i" arg,
  and plural string uses both "%(req)i" and "%(avail)i" args.
  
  In Zanata (translation platform), currently, po files on some languages
  are saved if the languages are set to just use singular form.
  
  #: openstack_dashboard/dashboards/project/instances/workflows/create_instance.py:214
  #, python-format
  msgid ""
  "The requested instance cannot be launched as you only have %(avail)i of your "
  "quota available. "
  msgid_plural ""
  "The requested %(req)i instances cannot be launched as you only have "
  "%(avail)i of your quota available."
  msgstr[0] ""
  "The requested instance cannot be launched as you only have %(avail)i of your "
  "quota available. "
  
  This generates an error when msgfmt command is executed:
  
- $ msgfmt --check-format -o /dev/null django.po 
+ $ msgfmt --check-format -o /dev/null django.po
  django.po:10766: a format specification for argument 'req' doesn't exist in 'msgstr[0]'
  msgfmt: found 1 fatal error
  
  Because of this occurrence, there have been job failures for Korean and Indonesian language
  to import translated strings to Horizon git repository.
  
  The current solution would be to add "%(req)i" argument on the singular
  string.
+ 
+ 
+ Reference
+ [1] http://lists.openstack.org/pipermail/openstack-dev/2016-September/103941.html
+ [2] http://lists.openstack.org/pipermail/openstack-i18n/2016-October/002476.html

** Tags added: in-stable-newton newton-backport-potential

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1630507

Title:
  Different use of args in ungettext_lazy causes error on syncing with
  translation infra

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  In
  http://git.openstack.org/cgit/openstack/horizon/tree/openstack_dashboard/dashboards/project/instances/workflows/create_instance.py#n214
  ,

  If we look at strings for singular and plural on ungettext_lazy(),
  singular string uses only "%(avail)i" arg,
  and plural string uses both "%(req)i" and "%(avail)i" args.

  In Zanata (translation platform), currently, po files on some
  languages are saved if the languages are set to just use singular
  form.

  #: openstack_dashboard/dashboards/project/instances/workflows/create_instance.py:214
  #, python-format
  msgid ""
  "The requested instance cannot be launched as you only have %(avail)i of your "
  "quota available. "
  msgid_plural ""
  "The requested %(req)i instances cannot be launched as you only have "
  "%(avail)i of your quota available."
  msgstr[0] ""
  "The requested instance cannot be launched as you only have %(avail)i of your "
  "quota available. "

  This generates an error when msgfmt command is executed:

  $ msgfmt --check-format -o /dev/null django.po
  django.po:10766: a format specification for argument 'req' doesn't exist in 'msgstr[0]'
  msgfmt: found 1 fatal error

  Because of this occurrence, there have been job failures for Korean and Indonesian language
  to import translated strings to Horizon git repository.

  The current solution would be to add "%(req)i" argument on the
  singular string.

  
  Reference
  [1] http://lists.openstack.org/pipermail/openstack-dev/2016-September/103941.html
  [2] http://lists.openstack.org/pipermail/openstack-i18n/2016-October/002476.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1630507/+subscriptions


Follow ups