Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #19034 -- Added proper i18n pluralization for max/min length va…

…lidation messages

This was made possible by commit 3f1a0c0. Thanks Evil Clay
for the report and Alexey Boriskin his work on the ticket.
  • Loading branch information...
commit fc8efc2d9e693923d3da272e0978e5b0631006f9 1 parent c8c7cdc
@claudep claudep authored
Showing with 14 additions and 5 deletions.
  1. +9 −3 django/core/validators.py
  2. +5 −2 django/forms/fields.py
View
12 django/core/validators.py
@@ -7,7 +7,7 @@
from urlparse import urlsplit, urlunsplit
from django.core.exceptions import ValidationError
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy as _, ungettext_lazy
from django.utils.encoding import force_text
from django.utils.ipv6 import is_valid_ipv6_address
from django.utils import six
@@ -209,12 +209,18 @@ class MinValueValidator(BaseValidator):
class MinLengthValidator(BaseValidator):
compare = lambda self, a, b: a < b
clean = lambda self, x: len(x)
- message = _('Ensure this value has at least %(limit_value)d characters (it has %(show_value)d).')
+ message = ungettext_lazy(
+ 'Ensure this value has at least %(limit_value)d character (it has %(show_value)d).',
+ 'Ensure this value has at least %(limit_value)d characters (it has %(show_value)d).',
+ 'limit_value')
code = 'min_length'
class MaxLengthValidator(BaseValidator):
compare = lambda self, a, b: a > b
clean = lambda self, x: len(x)
- message = _('Ensure this value has at most %(limit_value)d characters (it has %(show_value)d).')
+ message = ungettext_lazy(
+ 'Ensure this value has at most %(limit_value)d character (it has %(show_value)d).',
+ 'Ensure this value has at most %(limit_value)d characters (it has %(show_value)d).',
+ 'limit_value')
code = 'max_length'
View
7 django/forms/fields.py
@@ -28,7 +28,7 @@
from django.utils.encoding import smart_text, force_str, force_text
from django.utils.ipv6 import clean_ipv6_address
from django.utils import six
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy as _, ungettext_lazy
# Provide this import for backwards compatibility.
from django.core.validators import EMPTY_VALUES
@@ -505,7 +505,10 @@ class FileField(Field):
'invalid': _("No file was submitted. Check the encoding type on the form."),
'missing': _("No file was submitted."),
'empty': _("The submitted file is empty."),
- 'max_length': _('Ensure this filename has at most %(max)d characters (it has %(length)d).'),
+ 'max_length': ungettext_lazy(
+ 'Ensure this filename has at most %(max)d character (it has %(length)d).',
+ 'Ensure this filename has at most %(max)d characters (it has %(length)d).',
+ 'max'),
'contradiction': _('Please either submit a file or check the clear checkbox, not both.')
}
Please sign in to comment.
Something went wrong with that request. Please try again.