我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.utils.translation.ungettext()。
def model_ngettext(obj, n=None): """ Return the appropriate `verbose_name` or `verbose_name_plural` value for `obj` depending on the count `n`. `obj` may be a `Model` instance, `Model` subclass, or `QuerySet` instance. If `obj` is a `QuerySet` instance, `n` is optional and the length of the `QuerySet` is used. """ if isinstance(obj, models.query.QuerySet): if n is None: n = obj.count() obj = obj.model d = model_format_dict(obj) singular, plural = d["verbose_name"], d["verbose_name_plural"] return ungettext(singular, plural, n or 0)
def _bulk_flag(self, queryset, action, done_message): """ Flag, approve, or remove some comments from an admin action. Actually calls the `action` argument to perform the heavy lifting. """ n_comments = 0 for comment in queryset: action(self.request, comment) n_comments += 1 msg = ungettext('1 comment was successfully %(action)s.', '%(count)s comments were successfully %(action)s.', n_comments) self.message_user(msg % {'count': n_comments, 'action': done_message(n_comments)}, 'success') # Only register the default admin if the model is the built-in comment model # (this won't be true if there's a custom comment app).
def save_related(self, request, form, *args, **kwargs): """ If the user has saved a gallery with a photo that belongs only to different Sites - it might cause much confusion. So let them know. """ super(GalleryAdmin, self).save_related(request, form, *args, **kwargs) orphaned_photos = form.instance.orphaned_photos() if orphaned_photos: msg = ungettext( 'The following photo does not belong to the same site(s)' ' as the gallery, so will never be displayed: %(photo_list)s.', 'The following photos do not belong to the same site(s)' ' as the gallery, so will never be displayed: %(photo_list)s.', len(orphaned_photos) ) % {'photo_list': ", ".join([photo.title for photo in orphaned_photos])} messages.warning(request, msg)
def get_success_enrollment_message(cls, users, enrolled_in): """ Create message for the users who were enrolled in a course or program. Args: users: An iterable of users who were successfully enrolled enrolled_in (str): A string identifier for the course or program the users were enrolled in Returns: tuple: A 2-tuple containing a message type and message text """ enrolled_count = len(users) return ( 'success', ungettext( '{enrolled_count} learner was enrolled in {enrolled_in}.', '{enrolled_count} learners were enrolled in {enrolled_in}.', enrolled_count, ).format( enrolled_count=enrolled_count, enrolled_in=enrolled_in, ) )
def clean_comment(self): """ If COMMENTS_ALLOW_PROFANITIES is False, check that the comment doesn't contain anything in PROFANITIES_LIST. """ comment = self.cleaned_data["comment"] if settings.COMMENTS_ALLOW_PROFANITIES == False: bad_words = [w for w in settings.PROFANITIES_LIST if w in comment.lower()] if bad_words: raise forms.ValidationError(ungettext( "Watch your mouth! The word %s is not allowed here.", "Watch your mouth! The words %s are not allowed here.", len(bad_words)) % get_text_list( ['"%s%s%s"' % (i[0], '-'*(len(i)-2), i[-1]) for i in bad_words], ugettext('and'))) return comment
def full_clean(self): """ Cleans all of self.data and populates self._errors and self._non_form_errors. """ self._errors = [] self._non_form_errors = self.error_class() if not self.is_bound: # Stop further processing. return for i in range(0, self.total_form_count()): form = self.forms[i] self._errors.append(form.errors) try: if (self.validate_max and self.total_form_count() - len(self.deleted_forms) > self.max_num) or \ self.management_form.cleaned_data[TOTAL_FORM_COUNT] > self.absolute_max: raise ValidationError(ungettext( "Please submit %d or fewer forms.", "Please submit %d or fewer forms.", self.max_num) % self.max_num, code='too_many_forms', ) if (self.validate_min and self.total_form_count() - len(self.deleted_forms) < self.min_num): raise ValidationError(ungettext( "Please submit %d or more forms.", "Please submit %d or more forms.", self.min_num) % self.min_num, code='too_few_forms') # Give self.clean() a chance to do cross-form validation. self.clean() except ValidationError as e: self._non_form_errors = self.error_class(e.error_list)
def validate(self, password, user=None): if len(password) < self.min_length: raise ValidationError( ungettext( "This password is too short. It must contain at least %(min_length)d character.", "This password is too short. It must contain at least %(min_length)d characters.", self.min_length ), code='password_too_short', params={'min_length': self.min_length}, )