How about just monkeypatching the active negotiator? {{{ negotiator = getUtility(zope.i18n.interfaces.INegotiator) orig = negotiator.getLanguage negotiator.getLanguage = lambda foo, bar: 'fr' text = my_page_template() negotiator.getLanguage = orig }}} Haven't tested it, but in my (limited) understanding of the I18N system something like that ought to work.. egj On Fri, Apr 17, 2009 at 3:14 PM, Chris Withers <chris@simplistix.co.uk>wrote:
Hi All,
What I want to do is best shown in pseudocode:
something.setLanguage('fr') text = my_page_template() something.restoreLanguage()
...the reason I want to do this is that the results of that template will not be in the language negotiated for the current user, as the result is then emailed to someone who may not be speaking the same language as them.
I can't find a way to specify a target_language that overrides the negotiated language into the ZPT rendering process. Is there such a way?
Suggestions welcomed!
Chris