diff options
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) |
commit | 6a1454f3a441b6f84cabaff250b2744a5e4f4ec0 (patch) | |
tree | c0388134e7d07d6e5a88484a3eb6891bcd1ceaf3 /Lib | |
parent | 2592f62a5a7dca59d91b313794c92f4cb592e654 (diff) | |
download | cpython-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.py | 26 | ||||
-rw-r--r-- | Lib/test/test_optparse.py | 2 |
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"], |