← Back to team overview

yahoo-eng-team team mailing list archive

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

 

Reviewed:  https://review.openstack.org/386954
Committed: https://git.openstack.org/cgit/openstack/horizon/commit/?id=0409080e7b93a91323bbb69e1811ef79b17c4e6d
Submitter: Jenkins
Branch:    master

commit 0409080e7b93a91323bbb69e1811ef79b17c4e6d
Author: Ian Y. Choi <ianyrchoi@xxxxxxxxx>
Date:   Sat Oct 15 23:14:52 2016 +0900

    i18n: The same use of args with ugettext_lazy
    
    Different use of args in ungettext_lazy causes
    error on import job from translation infrastructure
    to horizon repository.
    
    The use of variables in singular and plural strings
    needs to be same. This commit also adjusts the string
    with ugettext_lazy() as other strings are dealt with.
    
    Change-Id: I9a836178b2d615504950545654242c0a4c196723
    Closes-Bug: #1630507


** Changed in: horizon
       Status: In Progress => Fix Released

-- 
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):
  Fix Released

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


References