summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorÉric Araujo <merwok@netwok.org>2011-03-20 18:59:25 (GMT)
committerÉric Araujo <merwok@netwok.org>2011-03-20 18:59:25 (GMT)
commit6a1454f3a441b6f84cabaff250b2744a5e4f4ec0 (patch)
treec0388134e7d07d6e5a88484a3eb6891bcd1ceaf3 /Lib
parent2592f62a5a7dca59d91b313794c92f4cb592e654 (diff)
downloadcpython-6a1454f3a441b6f84cabaff250b2744a5e4f4ec0.zip
cpython-6a1454f3a441b6f84cabaff250b2744a5e4f4ec0.tar.gz
cpython-6a1454f3a441b6f84cabaff250b2744a5e4f4ec0.tar.bz2
Use proper gettext plural forms in optparse (closes #4391).
Original patch by Dwayne Bailey.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/optparse.py26
-rw-r--r--Lib/test/test_optparse.py2
2 files changed, 16 insertions, 12 deletions
diff --git a/Lib/optparse.py b/Lib/optparse.py
index 3eb652a..c207713 100644
--- a/Lib/optparse.py
+++ b/Lib/optparse.py
@@ -86,10 +86,16 @@ def _repr(self):
# 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 @@ class OptionParser (OptionContainer):
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 @@ class OptionParser (OptionContainer):
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
index 7b95612..61f44ee 100644
--- a/Lib/test/test_optparse.py
+++ b/Lib/test/test_optparse.py
@@ -631,7 +631,7 @@ class TestStandard(BaseTest):
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"],