Laurent, it works perfect! Thank you very much for your help! On Wednesday, June 12, 2013 3:52:22 PM UTC+2, Eldav wrote: > > > Right now I'm trying to send request.translate to SignupForm via: > > > > @view_config(...) > > def signup(request): > > customer = Customer() > > form = SignupForm(request.POST, customer, _=request.translate) > > ... > > I guess this can't work either, for the same reason. But this gave me an > idea :-) > > Basically, the problem is that the form definition is evaluated at > initialization time, but the translation proper must be done only during > each request. > > So, I tried this, and it works for me (Deform + Mako): I created a > "_lazy" class, which is a replacement for "_" : > > > from pyramid.threadlocal import get_current_request > > class _lazy(object): > > def __init__(self, msg): > self.msg = msg > > def __str__(self): > request = get_current_request() > return request.translate(self.msg) > > > (Yes, I know, using "get_current_request" should be avoided as much as > possible ;-) > > http://docs.pylonsproject.org/projects/pyramid/en/latest/api/threadlocal.html) > > > > > So, when my form is defined, each message is instantiated as a "_lazy" > object: > > > class SignupForm(Form): > firstname = TextField(_lazy(u'First name'), > [validators.Required(message=_lazy(u'This field is required.'))]) > lastname = TextField(_lazy(u'Last name'), > [validators.Required(message=_lazy(u'This field is required.'))]) > > > Then, I'm supposing that when the templating system renders the > TextFields into HTML, it will convert them to strings/unicode/... > > That's why I do the actual translation in the __str__ method, using the > get_current_request() request. > > > Hope this helps, > > > Laurent. > > > >
-- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
