def sum_string(amount, gender, items): """ in_words and choose_plural in a one flask Makes in-words representation of value with choosing correct form of noun. First parameter is an amount of objects. Second is a gender (MALE, FEMALE, NEUTER). Third is a variants of forms for object name. Examples:: {% sum_string some_int MALE "пример,примера,примеров" %} {% sum_string some_other_int FEMALE "задача,задачи,задач" %} """ try: if isinstance(items, basestring): uitems = pseudo_unicode(items, encoding, default_uvalue) else: uitems = [ pseudo_unicode(i, encoding, default_uvalue) for i in items ] ures = numeral.sum_string(amount, getattr(numeral, str(gender), None), uitems) res = pseudo_str(ures, encoding, default_value) except Exception, err: # because tag's renderer must die silently res = default_value % {'error': err, 'value': str(amount)}
def sum_string(amount, gender, items): """ in_words and choose_plural in a one flask Makes in-words representation of value with choosing correct form of noun. First parameter is an amount of objects. Second is a gender (MALE, FEMALE, NEUTER). Third is a variants of forms for object name. Examples:: {% sum_string some_int MALE "пример,примера,примеров" %} {% sum_string some_other_int FEMALE "задача,задачи,задач" %} """ try: if isinstance(items, basestring): uitems = pseudo_unicode(items, encoding, default_uvalue) else: uitems = [pseudo_unicode(i, encoding, default_uvalue) for i in items] ures = numeral.sum_string(amount, getattr(numeral, str(gender), None), uitems) res = pseudo_str( ures, encoding, default_value ) except Exception, err: # because tag's renderer must die silently res = default_value % {'error': err, 'value': str(amount)}
if six.PY3: out = s else: out = s.encode('UTF-8') print(out) # sum_string объединяет в себе choose_plural и in_words # т.е. передаются и количество, и варианты названия объекта # а на выходе получаем количество объектов в правильной форме # параметры: # 1) amount, количество (только целое) # 2) gender, пол (1=мужской, 2=женский, 3=средний) # 3) items, варианты названий объекта (необязательно), # правила аналогичны таковым у choose_plural print_(numeral.sum_string(3, numeral.MALE, ("носок", "носка", "носков"))) #-> три носка print_(numeral.sum_string(5, numeral.FEMALE, ("коробка", "коробки", "коробок"))) #-> пять коробок print_(numeral.sum_string(21, numeral.NEUTER, ("очко", "очка", "очков"))) #-> двадцать одно очко # если варианты не указывать, то действие функции аналогично дейтсвию in_words print_(numeral.sum_string(21, gender=numeral.NEUTER)) #-> двадцать одно
out = s else: out = s.encode('UTF-8') print(out) # sum_string объединяет в себе choose_plural и in_words # т.е. передаются и количество, и варианты названия объекта # а на выходе получаем количество объектов в правильной форме # параметры: # 1) amount, количество (только целое) # 2) gender, пол (1=мужской, 2=женский, 3=средний) # 3) items, варианты названий объекта (необязательно), # правила аналогичны таковым у choose_plural print_(numeral.sum_string(3, numeral.MALE, (u"носок", u"носка", u"носков"))) #-> три носка print_(numeral.sum_string(5, numeral.FEMALE, (u"коробка", u"коробки", u"коробок"))) #-> пять коробок print_(numeral.sum_string(21, numeral.NEUTER, (u"очко", u"очка", u"очков"))) #-> двадцать одно очко # если варианты не указывать, то действие функции аналогично дейтсвию in_words print_(numeral.sum_string(21, gender=numeral.NEUTER)) #-> двадцать одно
#!/usr/bin/env python # -*- coding: utf-8 -*- from pytils import numeral # sum_string объединяет в себе choose_plural и in_words # т.е. передаются и количество, и варианты названия объекта # а на выходе получаем количество объектов в правильной форме # параметры: # 1) amount, количество (только целое) # 2) gender, пол (1=мужской, 2=женский, 3=средний) # 3) items, варианты названий объекта (необязательно), # правила аналогичны таковым у choose_plural print numeral.sum_string(3, numeral.MALE, (u"носок", u"носка", u"носков")) #-> три носка print numeral.sum_string(5, numeral.FEMALE, (u"коробка", u"коробки", u"коробок")) #-> пять коробок print numeral.sum_string(21, numeral.NEUTER, (u"очко", u"очка", u"очков")) #-> двадцать одно очко # если варианты не указывать, то действие функции аналогично дейтсвию in_words print numeral.sum_string(21, gender=numeral.NEUTER) #-> двадцать одно