One more question: The validator IS_STRONG has the following error messages:
"Minimum length is %s" "Maximum length is %s" "Must include at least %s of the following : %s" "May not contain any of the following: %s" "Must include at least %s upper case" "May not include any upper case letters" "Must include at least %s lower case" "May not include any lower case letters" "Must include at least %s %s" "May not include any numbers" I think there is no way to translate these messages. 2011/3/6 Martin Weissenboeck <mweis...@gmail.com> > Ok, compatibility is a reason I understand. > > You are right: if I make a decision, which error message would be > appropriate for each single field it works fine. > > If there is a lot of fields with IS_INT_IN_RANGE requirements like T('enter > an integer between %(min)g and %(max)g') I will use an additional variable, > e.g.: > > > mm=T('enter an integer between %(min)g and %(max)g') > db.pet.legs.requires=IS_INT_IN_RANGE(0,9,mm) > > > > 2011/3/5 Jonathan Lundell <jlund...@pobox.com> > > On Mar 5, 2011, at 4:01 AM, Martin Weissenboeck wrote: >> >> This solution is not very beautiful, because I have to repeat the string >> 'fill >> this', but it works. >> *It does not work for classes like IS_INT_IN_RANGE,* because there is a >> lot of error messages, depending on the values: >> >> if minimum is None: >> if maximum is None: >> self.error_message = error_message or 'enter an integer' >> else: >> self.maximum = int(maximum) >> if error_message is None: >> error_message = 'enter an integer less than or equal >> to %(max)g' >> self.error_message = error_message % >> dict(max=self.maximum-1) >> elif maximum is None: >> self.minimum = int(minimum) >> if error_message is None: >> error_message = 'enter an integer greater than or equal >> to %(min)g' >> self.error_message = error_message % dict(min=self.minimum) >> else: >> self.minimum = int(minimum) >> self.maximum = int(maximum) >> if error_message is None: >> error_message = 'enter an integer between %(min)g and >> %(max)g' >> self.error_message = error_message % dict(min=self.minimum, >> max=self.maximum-1) >> >> Using the T-"operator" there is no way to translate these error message >> for example to German. >> And I think it looks very unprofessional to have mixes English and German >> messages. >> >> >> 1.93 was intended as a stable release without big changes, so that it can >> serve as the ongoing release for legacy support of Python 2.4. We'll have >> general support for translation in gluon fairly soon. >> >> In the meantime, using T in the constructor for IS_INT_IN_RANGE should >> work just fine. Is there some specific case that isn't working for you? >> > > > -- Mit freundlichen Grüßen / With kind regards Martin Weissenböck Gregor-Mendel-Str. 37, 1190 Wien Austria / European Union Tel +43 1 31400 00 Fax +43 1 31400 700