summaryrefslogtreecommitdiff
path: root/talinterpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'talinterpreter.py')
-rw-r--r--talinterpreter.py16
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)