[Checkins] SVN: grokcore.chameleon/trunk/src/grokcore/chameleon/components.py make sure the target_language is set on a lower level class, so it translation is done for PageTemplate(File) components too

Jan Wijbrand Kolman cvs-admin at zope.org
Mon May 7 15:29:15 UTC 2012


Log message for revision 125685:
  make sure the target_language is set on a lower level class, so it translation is done for PageTemplate(File) components too

Changed:
  U   grokcore.chameleon/trunk/src/grokcore/chameleon/components.py

-=-
Modified: grokcore.chameleon/trunk/src/grokcore/chameleon/components.py
===================================================================
--- grokcore.chameleon/trunk/src/grokcore/chameleon/components.py	2012-05-07 14:57:17 UTC (rev 125684)
+++ grokcore.chameleon/trunk/src/grokcore/chameleon/components.py	2012-05-07 15:29:12 UTC (rev 125685)
@@ -31,7 +31,7 @@
 from z3c.pt.expressions import PathExpr, ProviderExpr
 
 
-class PageTemplate(PageTemplate, GrokTemplate):
+class PageTemplate(PageTemplate):
     """A Chameleon page template suitable for use with views.
 
     It defines the path and provider expression types to the template in
@@ -48,6 +48,15 @@
         'structure': StructureExpr,
         }
 
+    def render(self, **vars):
+        if 'target_language' not in vars:
+            try:
+                target_language = zope.i18n.negotiate(vars['request'])
+            except:
+                target_language = None
+            vars['target_language'] = target_language
+        return super(PageTemplate, self).render(**vars)
+
 def _module_relative_to_abs(ctx, filename):
     # Taken and adapted from z3c.pth.pagetemplate.
     if os.path.isabs(filename):
@@ -105,12 +114,6 @@
 
     def render(self, view):
         context = self.getNamespace(view)
-        if 'target_language' not in context:
-            try:
-                target_language = zope.i18n.negotiate(context['request'])
-            except:
-                target_language = None
-            context['target_language'] = target_language
         return self._template(**context)
 
 



More information about the checkins mailing list