Commits

Éric Araujo  committed d3e4693

Mark getopt error messages as localizable (fixes #11371).

Patch by Filip Gruszczyński.

  • Participants
  • Parent commits ee4e780

Comments (0)

Files changed (2)

File Lib/getopt.py

 # Gerrit Holl <gerrit@nl.linux.org> moved the string-based exceptions
 # to class-based exceptions.
 #
-# Peter Ã
+# Peter Åstrand <astrand@lysator.liu.se> added gnu_getopt().
 #
 # TODO for gnu_getopt():
 #
 __all__ = ["GetoptError","error","getopt","gnu_getopt"]
 
 import os
+from gettext import gettext as _
 
 class GetoptError(Exception):
     opt = ''
     if has_arg:
         if optarg is None:
             if not args:
-                raise GetoptError('option --%s requires argument' % opt, opt)
+                raise GetoptError(_('option --%s requires argument') % opt, opt)
             optarg, args = args[0], args[1:]
     elif optarg is not None:
-        raise GetoptError('option --%s must not have an argument' % opt, opt)
+        raise GetoptError(_('option --%s must not have an argument') % opt, opt)
     opts.append(('--' + opt, optarg or ''))
     return opts, args
 
 def long_has_args(opt, longopts):
     possibilities = [o for o in longopts if o.startswith(opt)]
     if not possibilities:
-        raise GetoptError('option --%s not recognized' % opt, opt)
+        raise GetoptError(_('option --%s not recognized') % opt, opt)
     # Is there an exact match?
     if opt in possibilities:
         return False, opt
     if len(possibilities) > 1:
         # XXX since possibilities contains all valid continuations, might be
         # nice to work them into the error msg
-        raise GetoptError('option --%s not a unique prefix' % opt, opt)
+        raise GetoptError(_('option --%s not a unique prefix') % opt, opt)
     assert len(possibilities) == 1
     unique_match = possibilities[0]
     has_arg = unique_match.endswith('=')
         if short_has_arg(opt, shortopts):
             if optstring == '':
                 if not args:
-                    raise GetoptError('option -%s requires argument' % opt,
+                    raise GetoptError(_('option -%s requires argument') % opt,
                                       opt)
                 optstring, args = args[0], args[1:]
             optarg, optstring = optstring, ''
     for i in range(len(shortopts)):
         if opt == shortopts[i] != ':':
             return shortopts.startswith(':', i+1)
-    raise GetoptError('option -%s not recognized' % opt, opt)
+    raise GetoptError(_('option -%s not recognized') % opt, opt)
 
 if __name__ == '__main__':
     import sys
 Library
 -------
 
+- Issue #11371: Mark getopt error messages as localizable.  Patch by Filip
+  Gruszczyński.
+
 - Issue #4391: Use proper gettext plural forms in optparse.
 
 - Issue #11563: Connection:close header is sent by requests using URLOpener