Kaydet (Commit) 6a1454f3 authored tarafından Éric Araujo's avatar Éric Araujo

Use proper gettext plural forms in optparse (closes #4391).

Original patch by Dwayne Bailey.
üst 2592f62a
...@@ -86,10 +86,16 @@ def _repr(self): ...@@ -86,10 +86,16 @@ def _repr(self):
# Id: errors.py 509 2006-04-20 00:58:24Z gward # Id: errors.py 509 2006-04-20 00:58:24Z gward
try: try:
from gettext import gettext from gettext import gettext, ngettext
except ImportError: except ImportError:
def gettext(message): def gettext(message):
return message return message
def ngettext(singular, plural, n):
if n == 1:
return singular
return plural
_ = gettext _ = gettext
...@@ -1478,11 +1484,10 @@ class OptionParser (OptionContainer): ...@@ -1478,11 +1484,10 @@ class OptionParser (OptionContainer):
if option.takes_value(): if option.takes_value():
nargs = option.nargs nargs = option.nargs
if len(rargs) < nargs: if len(rargs) < nargs:
if nargs == 1: self.error(ngettext(
self.error(_("%s option requires an argument") % opt) "%(option)s option requires %(number)d argument",
else: "%(option)s option requires %(number)d arguments",
self.error(_("%s option requires %d arguments") nargs) % {"option": opt, "number": nargs})
% (opt, nargs))
elif nargs == 1: elif nargs == 1:
value = rargs.pop(0) value = rargs.pop(0)
else: else:
...@@ -1517,11 +1522,10 @@ class OptionParser (OptionContainer): ...@@ -1517,11 +1522,10 @@ class OptionParser (OptionContainer):
nargs = option.nargs nargs = option.nargs
if len(rargs) < nargs: if len(rargs) < nargs:
if nargs == 1: self.error(ngettext(
self.error(_("%s option requires an argument") % opt) "%(option)s option requires %(number)d argument",
else: "%(option)s option requires %(number)d arguments",
self.error(_("%s option requires %d arguments") nargs) % {"option": opt, "number": nargs})
% (opt, nargs))
elif nargs == 1: elif nargs == 1:
value = rargs.pop(0) value = rargs.pop(0)
else: else:
......
...@@ -631,7 +631,7 @@ class TestStandard(BaseTest): ...@@ -631,7 +631,7 @@ class TestStandard(BaseTest):
option_list=options) option_list=options)
def test_required_value(self): 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): def test_invalid_integer(self):
self.assertParseFail(["-b", "5x"], self.assertParseFail(["-b", "5x"],
......
...@@ -75,6 +75,8 @@ Core and Builtins ...@@ -75,6 +75,8 @@ Core and Builtins
Library Library
------- -------
- Issue #4391: Use proper gettext plural forms in optparse.
- Issue #11563: Connection:close header is sent by requests using URLOpener - Issue #11563: Connection:close header is sent by requests using URLOpener
class which helps in closing of sockets after connection is over. Patch class which helps in closing of sockets after connection is over. Patch
contributions by Jeff McNeil and Nadeem Vawda. contributions by Jeff McNeil and Nadeem Vawda.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment