Hi,

is it possible to translate the output data table using T()?

thank you so much

On Sun, Apr 10, 2011 at 5:45 AM, niknok <[email protected]> wrote:

> Beautiful one liner. I have to write an ugly hack to make it work. I
> was forcing the translations because I need to translate certain
> sections only.
>
> def babel(lang, s):
>    # forced translation of Q&A section
>    T.force(lang)
>    if type(s)==list:
>        loc_string=[]
>        for i in s:
>                loc_string.append(str(T(i)))
>    else:
>        loc_string=str(T(s))
>    T.set_current_languages('en') # reset to English
>    return loc_string
>
> and in my controller:
>
>    my_dialog=babel(session.locale, question['dialog'])
>    my_choices=babel(session.locale, question['choices'])
>    form=SQLFORM.factory(
>        Field('english', writable=False, default=question['dialog']),
>        Field('translation', writable=False, default=my_dialog,
> label=settings.locale[session.locale]),
>        Field('answer','list:string',
>                     default=answer_value,
>                requires=IS_IN_SET(question['choices'], my_choices,
> zero=None,
> multiple=True)))
>
>
>
> On Apr 7, 9:43 pm, DenesL <[email protected]> wrote:
> > Assuming
> > options = a retrieved list:string record
> >
> > then
> > choices = dict([(x,T(x)) for x in options])
> >
> > should work. Note: untested.
> >
> > On Apr 7, 3:29 am,niknok<[email protected]> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > Thanks DenesL.
> >
> > > What if the options are retrieved from a field of list:string type?
> >
> > > On Apr 4, 10:39 pm, DenesL <[email protected]> wrote:
> >
> > > > Use
> >
> > > > choices = {'Gold':T('Gold'), 'Silver':T('Silver')}
> >
> > > > and update your language translations strings.
> > > > Not sure how "answer" is obtained.
> >
> > > > On 4 abr, 09:16,niknok<[email protected]> wrote:
> >
> > > > > I tried:
> > > > > Field('color', 'list:string', default=answer,
> > > > > requires=IS_IN_SET(T(question['choices']), zero=None,
> multiple=True))
> >
> > > > > I would like to display the choices in the translated language but
> the
> > > > > selection will be stored in the database in the orginal language.
> For
> > > > > example:
> >
> > > > > choices = ['Gold', 'Silver']
> > > > > What the user sees: ['Oro', 'Plata']
> > > > > What is stored in the database (as the case, maybe): |Gold|Silver|
> >
> > > > > And if I need to display the selection (default=answer), Oro and
> Plata
> > > > > will be re-selected.

Reply via email to