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 />
<b>Description</b>
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 />
<b>Description</b>
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.
Comments