Mercurial > genshi > mirror
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: