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.

