1 3 package com.sslexplorer.extensions; 4 5 import java.util.HashMap ; 6 import java.util.Iterator ; 7 import java.util.Locale ; 8 import java.util.Properties ; 9 10 import org.apache.commons.logging.Log; 11 import org.apache.commons.logging.LogFactory; 12 import org.apache.struts.util.MessageResources; 13 import org.jdom.Element; 14 import org.jdom.JDOMException; 15 16 17 class ExtensionDescriptorMessageResources extends MessageResources { 18 19 final Log log = LogFactory.getLog(ExtensionDescriptorMessageResources.class); 20 21 HashMap locales; 22 23 ExtensionDescriptorMessageResources(Element element, ExtensionDescriptorMessageResourcesFactory factory, String config) throws JDOMException { 24 super(factory, config, true); 25 locales = new HashMap (); 26 for(Iterator i = element.getChildren().iterator(); i.hasNext(); ) { 27 Element el = (Element)i.next(); 28 if(!el.getName().equals("message")) { 29 throw new JDOMException("<messages> element may only contain <message> elements."); 30 } 31 String key = el.getAttributeValue("key"); 32 if(key == null) { 33 throw new JDOMException("<message> element must have a key attribute."); 34 } 35 String localeName = el.getAttributeValue("locale"); 36 if(localeName == null) { 37 localeName = ""; 38 } 39 Properties localeResources = (Properties )locales.get(localeName); 40 if(localeResources == null) { 41 localeResources = new Properties (); 42 locales.put(localeName, localeResources); 43 } 44 localeResources.put(key, el.getText()); 45 } 46 } 47 48 51 public String getMessage(Locale locale, String key) { 52 String localeKey = locale.getCountry() + "_" + locale.getVariant(); 53 Properties resources = (Properties )locales.get(localeKey); 54 if(resources == null) { 55 resources = (Properties )locales.get(""); 56 if(resources == null) { 57 return null; 58 } 59 else { 60 return resources.getProperty(key); 61 } 62 } 63 else { 64 return resources.getProperty(key); 65 } 66 } 67 } | Popular Tags |