bpo-37785: Fix xgettext warning in argparse (GH-15161)

(cherry picked from commit 42671aea2db6cbc54369617da0fd3545048e0a45)

Co-authored-by: Jakub KulĂ­k <Kulikjak@gmail.com>
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 456ec8b..e590225 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -1214,8 +1214,9 @@
             return open(string, self._mode, self._bufsize, self._encoding,
                         self._errors)
         except OSError as e:
-            message = _("can't open '%s': %s")
-            raise ArgumentTypeError(message % (string, e))
+            args = {'filename': string, 'error': e}
+            message = _("can't open '%(filename)s': %(error)s")
+            raise ArgumentTypeError(message % args)
 
     def __repr__(self):
         args = self._mode, self._bufsize