package message.config.i18n; import java.util.*; /** * 扩展的资源绑定. * * @author sunhao(sunhao.java@gmail.com) * @version V1.0, 13-4-17 下午10:44 */ public class DefaultResourceBundle extends ResourceBundle { private Map defaultBundleMap; private Map bundleMap; private Locale locale; public DefaultResourceBundle(Map defaultBundleMap, Map bundleMap, Locale locale) { this.defaultBundleMap = defaultBundleMap; this.bundleMap = bundleMap; this.locale = locale; } protected Object handleGetObject(String key) { Object result; if (locale == null) { //locale为空,则取中文环境 result = this.defaultBundleMap.get(key); } else { //从具体语言中取值 Map localeMap = (Map) this.bundleMap.get(locale); if (localeMap == null) localeMap = this.defaultBundleMap; result = localeMap != null ? localeMap.get(key) : null; if (result == null) //取不到值,则值默认为key result = key; } return result; } public Enumeration<String> getKeys() { Set keys = this.defaultBundleMap.keySet(); return Collections.enumeration(keys); } }