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 <ch...@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
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to