diff options
Diffstat (limited to 'talinterpreter.py')
-rw-r--r-- | talinterpreter.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/talinterpreter.py b/talinterpreter.py index fc916ae..5e34e97 100644 --- a/talinterpreter.py +++ b/talinterpreter.py @@ -496,6 +496,10 @@ class TALInterpreter(object): translated = self.translate(msgid or value, value) if translated is not None: value = translated + elif isinstance(value, I18nMessageTypes): + translated = self.translate(value) + if translated is not None: + value = translated if value is None: value = name return ["%s=%s" % (name, quote(value))] @@ -744,7 +748,10 @@ class TALInterpreter(object): if structure is self.Default: self.interpret(block) return - text = unicode(structure) + if isinstance(structure, I18nMessageTypes): + text = self.translate(structure) + else: + text = unicode(structure) if not (repldict or self.strictinsert): # Take a shortcut, no error checking self.stream_write(text) @@ -761,10 +768,9 @@ class TALInterpreter(object): if structure is self.Default: self.interpret(block) else: - if isinstance(structure, TypesToTranslate): - text = self.translate(structure) - else: - text = unicode(structure) + if not isinstance(structure, TypesToTranslate): + structure = unicode(structure) + text = self.translate(structure) if not (repldict or self.strictinsert): # Take a shortcut, no error checking self.stream_write(text) |