1 31 package org.blojsom.util.resources; 32 33 import org.apache.commons.logging.Log; 34 import org.apache.commons.logging.LogFactory; 35 36 import java.text.MessageFormat ; 37 import java.util.Locale ; 38 import java.util.MissingResourceException ; 39 import java.util.ResourceBundle ; 40 41 48 public class ResourceBundleResourceManager implements ResourceManager { 49 50 private Log _logger = LogFactory.getLog(ResourceBundleResourceManager.class); 51 private String [] _resourceBundles; 52 53 56 public ResourceBundleResourceManager() { 57 } 58 59 64 public void setResourceBundlesToLoad(String [] resourceBundles) { 65 _resourceBundles = resourceBundles; 66 } 67 68 74 public void init() throws org.blojsom.BlojsomException { 75 if (_resourceBundles != null && _resourceBundles.length > 0) { 76 for (int i = 0; i < _resourceBundles.length; i++) { 77 String resourceBundle = _resourceBundles[i]; 78 try { 79 ResourceBundle.getBundle(resourceBundle); 80 if (_logger.isDebugEnabled()) { 81 _logger.debug("Loaded resource bundle: " + resourceBundle); 82 } 83 } catch (Exception e) { 84 if (_logger.isErrorEnabled()) { 85 _logger.error(e); 86 } 87 } 88 } 89 } 90 91 if (_logger.isDebugEnabled()) { 92 _logger.debug("Initialized resource bundle resource manager"); 93 } 94 } 95 96 104 public String getString(String resourceID, String resource, String fallback) { 105 try { 106 ResourceBundle resourceBundle = ResourceBundle.getBundle(resource); 107 108 return resourceBundle.getString(resourceID); 109 } catch (MissingResourceException e) { 110 } 111 112 return fallback; 113 } 114 115 124 public String getString(String resourceID, String resource, String fallback, String language) { 125 return getString(resourceID, resource, fallback, new Locale (language)); 126 } 127 128 138 public String getString(String resourceID, String resource, String fallback, String language, String country) { 139 return getString(resourceID, resource, fallback, new Locale (language, country)); 140 } 141 142 151 public String getString(String resourceID, String resource, String fallback, Locale locale) { 152 try { 153 ResourceBundle resourceBundle = ResourceBundle.getBundle(resource, locale); 154 155 return resourceBundle.getString(resourceID); 156 } catch (MissingResourceException e) { 157 } 158 159 return fallback; 160 } 161 162 170 public String format(String pattern, Object [] arguments) { 171 String value = null; 172 173 try { 174 value = MessageFormat.format(pattern, arguments); 175 } catch (Exception e) { 176 } 177 178 return value; 179 } 180 } | Popular Tags |