Zope is really great with it's publisher transform things that automatically cast HTTP GET or HTTP POST variables as proper python variables on the fly. I needed a form that asks for a Title and Description in multiple languages. The result I wanted passed into the saving method was variables like this:

>>> titles
{'en': u'London', 'sv': u'Stockholm'}
>>> descriptions
{'en': u'Capital', 'sv': u'Huvudstad'}

How did I write that form? Easy, here's the code:

<b>Title</b><br />
Svenska: <input name="title.sv:record" /><br />
English: <input name="title.en:record" /><br />
Svenska: <input name="description.sv:record" /><br />
English: <input name="description.en:record" /><br />

And lastly, to get the unicoding right, you have to add the following so that the variable values are sent as iso-8859-1 encoded unicode strings:

<b>Title</b><br />
Svenska: <input name="title.sv:latin1:ustring:record" /><br />
English: <input name="title.en:latin1:ustring:record" /><br />
Svenska: <input name="description.sv:latin1:ustring:record" /><br />
English: <input name="description.en:latin1:ustring:record" /><br />

Zope takes care of the rest and you can just sit back and enjoy the productivity.


Your email will never ever be published.

Related posts