[Python-checkins] cpython: Use proper gettext plural forms in optparse (closes #4391). (original) (raw)

eric.araujo python-checkins at python.org
Sun Mar 20 20:06:47 CET 2011


http://hg.python.org/cpython/rev/4a5782a2b074 changeset: 68767:4a5782a2b074 user: Éric Araujo <merwok at netwok.org> date: Sun Mar 20 19:59:25 2011 +0100 summary: Use proper gettext plural forms in optparse (closes #4391).

Original patch by Dwayne Bailey.

files: Lib/optparse.py Lib/test/test_optparse.py Misc/NEWS

diff --git a/Lib/optparse.py b/Lib/optparse.py --- a/Lib/optparse.py +++ b/Lib/optparse.py @@ -86,10 +86,16 @@ # Id: errors.py 509 2006-04-20 00:58:24Z gward try: - from gettext import gettext + from gettext import gettext, ngettext except ImportError: def gettext(message): return message + + def ngettext(singular, plural, n): + if n == 1: + return singular + return plural + _ = gettext @@ -1478,11 +1484,10 @@ if option.takes_value(): nargs = option.nargs if len(rargs) < nargs: - if nargs == 1: - self.error(("%s option requires an argument") % opt) - else: - self.error(("%s option requires %d arguments") - % (opt, nargs)) + self.error(ngettext( + "%(option)s option requires %(number)d argument", + "%(option)s option requires %(number)d arguments", + nargs) % {"option": opt, "number": nargs}) elif nargs == 1: value = rargs.pop(0) else: @@ -1517,11 +1522,10 @@ nargs = option.nargs if len(rargs) < nargs: - if nargs == 1: - self.error(("%s option requires an argument") % opt) - else: - self.error(("%s option requires %d arguments") - % (opt, nargs)) + self.error(ngettext( + "%(option)s option requires %(number)d argument", + "%(option)s option requires %(number)d arguments", + nargs) % {"option": opt, "number": nargs}) elif nargs == 1: value = rargs.pop(0) else: diff --git a/Lib/test/test_optparse.py b/Lib/test/test_optparse.py --- a/Lib/test/test_optparse.py +++ b/Lib/test/test_optparse.py @@ -631,7 +631,7 @@ option_list=options) def test_required_value(self): - self.assertParseFail(["-a"], "-a option requires an argument") + self.assertParseFail(["-a"], "-a option requires 1 argument") def test_invalid_integer(self): self.assertParseFail(["-b", "5x"], diff --git a/Misc/NEWS b/Misc/NEWS --- a/Misc/NEWS +++ b/Misc/NEWS @@ -75,6 +75,8 @@ Library

+- Issue #4391: Use proper gettext plural forms in optparse. +

-- Repository URL: http://hg.python.org/cpython



More information about the Python-checkins mailing list