The current default validation messages in Application.properties make no logical sense.

At the moment, if you put in a value that is larger than a NumberValidator maximum it says:

"5 must be smaller than 3"

Which it can't be, not even for very small values of 5.

To fix this, we need to do one of the following two things:

1. Change ${input} to ${label}, in which case they would all make sense.

2. Change the text so it actually makes sense in the context of ${input}
   as in the attached patch. e.g. "5 is larger than 3.", which would
   at least tell you what's currently wrong with it.

I appreciate the argument that people don't call setLabel() when they should do, but the current set-up isn't nice.

Thoughts?

Regards,

Al

--
Alastair Maw
Wicket-biased blog at http://herebebeasties.com
Index: /home/almaw/svn/wicket/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.properties
===================================================================
--- /home/almaw/svn/wicket/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.properties	(revision 553981)
+++ /home/almaw/svn/wicket/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.properties	(working copy)
@@ -15,18 +15,18 @@
 Required=Field '${label}' is required.
 IConverter='${input}' is not a valid ${type}.
 
-NumberValidator.range=${input} must be between ${minimum} and ${maximum}.
-NumberValidator.minimum='${input}' must be greater than ${minimum}.
-NumberValidator.maximum='${input}' must be smaller than ${maximum}.
+NumberValidator.range=${input} is not between ${minimum} and ${maximum}.
+NumberValidator.minimum='${input}' is smaller than ${minimum}.
+NumberValidator.maximum='${input}' is larger than ${maximum}.
 
-StringValidator.range='${input}' must be between ${minimum} and ${maximum} characters.
-StringValidator.minimum='${input}' must be at least ${minimum} characters.
-StringValidator.maximum='${input}' must be at most ${maximum} characters.
-StringValidator.exact='${input}' must be ${exact} characters long.
+StringValidator.range='${input}' is not between ${minimum} and ${maximum} characters.
+StringValidator.minimum='${input}' is less than ${minimum} characters.
+StringValidator.maximum='${input}' is more than ${maximum} characters.
+StringValidator.exact='${input}' is not exactly ${exact} characters long.
 
-DateValidator.range='${input}' must be between ${minimum} and ${maximum}.
-DateValidator.minimum='${input}' must be greater than ${minimum}.
-DateValidator.maximum='${input}' must be smaller than ${maximum}.
+DateValidator.range='${input}' is not between ${minimum} and ${maximum}.
+DateValidator.minimum='${input}' is less than ${minimum}.
+DateValidator.maximum='${input}' is larger than ${maximum}.

Reply via email to