I got the problem here is a bug report to the formencode tracker
https://sourceforge.net/tracker/?func=detail&atid=596416&aid=2515640&group_id=91231
The cause of such a strange behaviour was....
from xml import xpath
after you do it - set_stdtranslation stop work and always return
English

On Jan 13, 7:21 pm, mickolka <[email protected]> wrote:
> Hi,
> I have a different problem with pylons andformencodei18n
> when I run the following code in console
> importformencode
> ne 
> =formencode.validators.NotEmpty()formencode.api.set_stdtranslation(languages=["de"])
> try:
>     ne.to_python("")
> exceptformencode.api.Invalid, e:
>     print str(e)
>
> I get printed
>
> Bitte einen Wert eingeben
>
> when I do in inside a controller I get printed
>
> Please enter a value
>
> What can be the problem with it?
> my easy_install.pth file is
> import sys; sys.__plen = len(sys.path)
> ./Mako-0.1.8-py2.5.egg
> ./nose-0.10.1-py2.5.egg
> ./decorator-2.2.0-py2.5.egg
> ./PasteScript-1.3.6-py2.5.egg
> ./PasteDeploy-1.3.1-py2.5.egg
> ./AuthKit-0.4.0-py2.5.egg
> ./elementtree-1.2.7_20070827_preview-py2.5.egg
> ./python_urljr-1.0.1-py2.5.egg
> ./python_yadis-1.1.0-py2.5.egg
> ./python_openid-1.2.0-py2.5.egg
> ./Babel-0.9.2-py2.5.egg
> ./paginate-0.3.2-py2.5.egg
> ./sqlalchemy_migrate-0.4.3-py2.5.egg
> ./Elixir-0.5.2-py2.5.egg
> ./Beaker-0.9.3-py2.5.egg
> ./Routes-1.8-py2.5.egg
> ./SQLAlchemy-0.4.5-py2.5.egg
> ./pytils-0.2.2-py2.5.egg
> ./logging-0.4.9.6-py2.5.egg
> ./xlrd-0.6.1-py2.5.egg
> ./dateutil-1.1-py2.5.egg
> ./pytz-2008b-py2.5.egg
> ./pygooglechart-0.2.0-py2.5.egg
> ./PyYAML-3.05-py2.5.egg
> ./setuptools-0.6c8-py2.5.egg
> ./Paste-1.7.1-py2.5.egg
> ./geopy-0.93-py2.5.egg
> ./WebOb-0.9.2-py2.5.egg
> ./flup-1.0.1-py2.5.egg
> ./bsddb3-4.7.2-py2.5-macosx-10.5-i386.egg
> ./simplejson-2.0.4-py2.5-macosx-10.5-i386.egg
> ./WebHelpers-0.6.4-py2.5.egg
> ./clonedigger-1.0.9_beta-py2.5.egg
> ./FormBuild-0.1.6b-py2.5.egg
> ./FormEncode-1.0.1-py2.5.egg
> ./Pylons-0.9.6.1-py2.5.egg
> import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
> p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p
> +len(new)
>
> Also some time ago there were no problems with it, probably it is
> somehow related to our switch to newer webhelpers
>
> Thanks in advance for any help.
>
> Mykola
>
> On Nov 20 2008, 9:28 am, "Dalius Dobravolskas"
>
> <[email protected]> wrote:
> > Hi,
>
> > > I'm having some troubles withFormEncodeand internationalization.
> > > What I'm trying to do is to make FE to display properly translated
> > > messages for those form fields that are not valid. After a lot of
> > > trials and errors I found that (using paster shell):
>
> > >>>>formencode.api.set_stdtranslation(domain='FormEncode', languages=['it'])
> > >>>>formencode.api._stdtrans('Please enter a value')
>
> > > works as expected and I get the translated message. However:
>
> > >>>> pylons.decorators.formencode_gettext('Please enter a value')
>
> > > gives me the original message (i.e. in english). What I don't
> > > understand here is that in pylons/decorators/__init__.py there is the
> > > following import statament:
>
> > > fromformencode.api import _stdtrans as formencode_gettext
>
> > > so calling pylons.decorators.formencode_gettext() should give the same
> > > result as callingformencode.api._stdtrans(). But it doesn't!
>
> > > It's like the former set_stdtranslation() call has no effect when I
> > > call _stdtrans() from within pylons. But I really don't understand
> > > what's going on here. Any help?
>
> > While it looks the same it is not:>>>formencode.api._stdtrans
>
> > <bound method GNUTranslations.ugettext of <gettext.GNUTranslations
> > instance at 0x00C63288>>>>> pylons.decorators.formencode_gettext
>
> > <bound method NullTranslations.ugettext of <gettext.NullTranslations
> > instance at 0x00D405D0>>
>
> > In my opinion you shouldn't use this function directly. decorators
> > module exports only jsonify and validate functions. Use them.
> > That's how I solved validate problem:
>
> > from pylons.i18n import set_lang
>
> > class PeklaStateFactory(object):
>
> >     def __call__(self):
> >         set_lang('it')
> >        formencode.api.set_stdtranslation(domain="FormEncode", 
> > languages=['it'])
> >         return None
>
> > state_factory = PeklaStateFactory()
>
> > That's how you can use state_factory with tosca widgets validate:
> > @validate(form=banner_form, error_handler='edit', 
> > state_factory=state_factory)
>
> > Pylons validate should use state (not state_factory) but I have not tested 
> > that.
>
> > --
> > Daliushttp://blog.sandbox.lt
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to