Найти - Пользователи
Полная версия: Локализация validator`ов
Начало » Pyramid / Pylons / TurboGears » Локализация validator`ов
1 2
PooH
Да все уже, все понял :) Всем спасибо :)

from turbogears import validators, util
import formencode

class Number(formencode.validators.Number):

messages = {
‘number’: ‘Введите число’,
}

def _to_python(self, value, state):
“”“ parse a string and returns a float or integer ”“”
try:
value = validators.format.parse_decimal(value)
except ValueError:
pass
return super(Number, self)._to_python(value, state)

def _from_python(self, value, state):
“”“ returns a string using the correct grouping ”“”
dec_places = util.find_precision(value)
if dec_places > 0:
return validators.format.format_decimal(value, dec_places)
else:
return validators.format.format_number(value)

v = Number()
tt=v.to_python('tt')
PooH
Да, еще, вдогонку. Стоит еще из value в _to_python перед преобразованием в число пробелы вырезать. Столкнулся недавно, Firefox разделяет ими триплеты в числе для красоты, а потом с ними и постит.
pythonwin
посидел с локализацией - проблему можно обойти:
def Int_utf(*args, **kw):
    if not kw.has_key(messages):
        kw['messages'] = {'integer': _("Please enter an integer value")}
    return formencode.validators.Int( *args, **kw)

правда код не очень, но работает
pythonwin
OlDer
В FormEncode 6.1 это уже будет “из коробки” - я им русский перевод отправлял.
http://python.org/pypi/FormEncode/0.7.1
добавлено :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB