Author: ivaynberg
Date: Tue Jul 14 03:42:11 2009
New Revision: 793782

URL: http://svn.apache.org/viewvc?rev=793782&view=rev
Log:
WICKET-2350 Localization messages stops working with validators since 1.4-rc2
Issue: WICKET-2350

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java?rev=793782&r1=793781&r2=793782&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
 Tue Jul 14 03:42:11 2009
@@ -158,15 +158,28 @@
                        // retrieve prefix that will be used to construct 
message keys
                        String prefix = formComponent.getValidatorKeyPrefix();
                        String message = null;
-                       if (!Strings.isEmpty(prefix))
+
+                       // first try the full form of key 
[prefix].[form-component-id].[key]
+                       String resource = prefix(prefix, getId() + "." + key);
+                       message = getString(localizer, resource, formComponent);
+
+                       // if not found, try a more general form (without 
prefix) [form-component-id].[key]
+                       if (Strings.isEmpty(message) && Strings.isEmpty(prefix))
                        {
-                               String resource = prefix + "." + key;
+                               resource = getId() + "." + key;
                                message = getString(localizer, resource, 
formComponent);
                        }
 
-                       // If not found, than ...
+                       // If not found try a more general form [prefix].[key]
                        if (Strings.isEmpty(message))
                        {
+                               resource = prefix(prefix, key);
+                               message = getString(localizer, key, 
formComponent);
+                       }
+
+                       // If not found try the most general form [key]
+                       if (Strings.isEmpty(message) && Strings.isEmpty(prefix))
+                       {
                                // Try a variation of the resource key
                                message = getString(localizer, key, 
formComponent);
                        }
@@ -180,6 +193,18 @@
                        return message;
                }
 
+               private String prefix(String prefix, String key)
+               {
+                       if (!Strings.isEmpty(prefix))
+                       {
+                               return prefix + "." + key;
+                       }
+                       else
+                       {
+                               return key;
+                       }
+               }
+
                /**
                 * 
                 * @param localizer


Reply via email to