+1

On May 5, 12:29 pm, Mariano Reingart <reing...@gmail.com> wrote:
> Advice:
>
> Using translated strings as keys is a very bad idea (sorry, my fault).
>
> As soon as other language is used, dictionaries and lists are broken
> anyway (some values stored translated, some other stored
> untranslated...)
>
> I think it is better to allways use untranslated strings internally
> (in key, lists, fields), and then translate them at the view.
>
> Best regards,
>
> Mariano 
> Reingarthttp://www.aprug.com.arhttp://www.sistemasagiles.com.arhttp://reingart.blogspot.com
>
> On Tue, May 4, 2010 at 8:45 PM, Mariano Reingart <reing...@gmail.com> wrote:
> > Seems translated texts cannot be used as keys for dictionaries or
> > values to be iterated for lists/tuples:
>
> > SPONSOR_LEVELS=(T("Organizer"),T("Sponsor"))
> > ...
> > random.shuffle(response.sponsors[SPONSOR_LEVELS[1]])
>
> > Traceback (most recent call last):
> >  File "gluon/restricted.py", line 178, in restricted
> >    exec ccode in environment
> >  File "/home/web2py/applications/rafaela2010/models/menu.py", line
> > 85, in <module>
> >    random.shuffle(response.sponsors[SPONSOR_LEVELS[1]])
> > KeyError: <gluon.languages.lazyT object at 0x89620ec>
>
> > Iterating over a T'ed values causes the same bug:
>
> > Traceback (most recent call last):
> >  File "gluon/restricted.py", line 178, in restricted
> >    exec ccode in environment
> >  File "/home/web2py/applications/raf10dev/views/plugin_flatpages.html",
> > line 112, in <module>
> >    for sponsor_level in SPONSOR_LEVELS:
> > KeyError: <gluon.languages.lazyT object at 0x89e2f4c>
>
> > Workaround:
> > ------------------
>
> > Converting translated text to str solves the problem:
>
> > random.shuffle(response.sponsors[str(SPONSOR_LEVELS[1])])
>
> > or
>
> > for sponsor_level in [str(l) for l in SPONSOR_LEVELS]:
>
> > Best regards,
>
> > Mariano Reingart
> >http://www.sistemasagiles.com.ar
> >http://reingart.blogspot.com

Reply via email to