Fixed #19034 -- Added proper i18n pluralization for max/min length validation messages
This was made possible by commit 3f1a0c0040
. Thanks Evil Clay
for the report and Alexey Boriskin his work on the ticket.
This commit is contained in:
parent
c8c7cdc8f8
commit
fc8efc2d9e
|
@ -7,7 +7,7 @@ except ImportError: # Python 2
|
||||||
from urlparse import urlsplit, urlunsplit
|
from urlparse import urlsplit, urlunsplit
|
||||||
|
|
||||||
from django.core.exceptions import ValidationError
|
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.encoding import force_text
|
||||||
from django.utils.ipv6 import is_valid_ipv6_address
|
from django.utils.ipv6 import is_valid_ipv6_address
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
@ -209,12 +209,18 @@ class MinValueValidator(BaseValidator):
|
||||||
class MinLengthValidator(BaseValidator):
|
class MinLengthValidator(BaseValidator):
|
||||||
compare = lambda self, a, b: a < b
|
compare = lambda self, a, b: a < b
|
||||||
clean = lambda self, x: len(x)
|
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'
|
code = 'min_length'
|
||||||
|
|
||||||
|
|
||||||
class MaxLengthValidator(BaseValidator):
|
class MaxLengthValidator(BaseValidator):
|
||||||
compare = lambda self, a, b: a > b
|
compare = lambda self, a, b: a > b
|
||||||
clean = lambda self, x: len(x)
|
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'
|
code = 'max_length'
|
||||||
|
|
|
@ -28,7 +28,7 @@ from django.utils import formats
|
||||||
from django.utils.encoding import smart_text, force_str, force_text
|
from django.utils.encoding import smart_text, force_str, force_text
|
||||||
from django.utils.ipv6 import clean_ipv6_address
|
from django.utils.ipv6 import clean_ipv6_address
|
||||||
from django.utils import six
|
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.
|
# Provide this import for backwards compatibility.
|
||||||
from django.core.validators import EMPTY_VALUES
|
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."),
|
'invalid': _("No file was submitted. Check the encoding type on the form."),
|
||||||
'missing': _("No file was submitted."),
|
'missing': _("No file was submitted."),
|
||||||
'empty': _("The submitted file is empty."),
|
'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.')
|
'contradiction': _('Please either submit a file or check the clear checkbox, not both.')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue