diff genshi/filters/i18n.py @ 600:23a4784203ae trunk

Handle starargs and dstarargs in the I18n extraction code.
author cmlenz
date Wed, 15 Aug 2007 23:07:55 +0000
parents badb5e5b7bb9
children c9a084ffaee6
line wrap: on
line diff
--- a/genshi/filters/i18n.py
+++ b/genshi/filters/i18n.py
@@ -405,12 +405,15 @@
         if isinstance(node, ast.CallFunc) and isinstance(node.node, ast.Name) \
                 and node.node.name in gettext_functions:
             strings = []
-            for arg in node.args:
+            def _add(arg):
                 if isinstance(arg, ast.Const) \
                         and isinstance(arg.value, basestring):
-                    strings.append(unicode(arg.value))
-                elif not isinstance(arg, ast.Keyword):
+                    strings.append(unicode(arg.value, 'utf-8'))
+                elif arg and not isinstance(arg, ast.Keyword):
                     strings.append(None)
+            [_add(arg) for arg in node.args]
+            _add(node.star_args)
+            _add(node.dstar_args)
             if len(strings) == 1:
                 strings = strings[0]
             else:
Copyright (C) 2012-2017 Edgewall Software