Actually -- for a more proper solution -- I believe
zope.i18n.interfaces.IUserPreferredLanguages is expected to adapt a request
(rather than being a contextless utility) so I bet you could register a
custom IUserPreferredLanguages whose getPreferredLanguages returns ['fr'] on
an IForceLanguage interface, and mark the current request with
IForceLanguage before rendering the template.
On Fri, Apr 17, 2009 at 3:35 PM, Ethan Jucovy <ethan.juc...@gmail.com>wrote:
> 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..
> 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:
>> text = my_page_template()
>> ...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!
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -