package org.agnitas.emm.extension.util; import java.io.IOException; import java.io.InputStream; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; import org.apache.log4j.Logger; public class I18NFactory { private static final transient Logger logger = Logger.getLogger( I18NFactory.class); private final ClassLoader classLoader; private final String bundleName; public I18NFactory( ClassLoader classLoader, String bundleName) { this.classLoader = classLoader; this.bundleName = bundleName; } public ResourceBundle getMessages( String i18nPrefix) { String fullName = (i18nPrefix.equals( "") ? bundleName : bundleName + "_" + i18nPrefix) + ".properties"; InputStream stream = classLoader.getResourceAsStream( fullName); if( stream != null) { try { try { PropertyResourceBundle bundle = new PropertyResourceBundle( stream); return bundle; } finally { stream.close(); } } catch( IOException e) { logger.error( "Error reading i18n bundle '" + fullName + "'", e); return null; } } else { logger.info( "No i18n bundle '" + fullName + "'"); return null; } } }