All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.openutils.mgnlmessages.pages.DefaultMessagesImpl Maven / Gradle / Ivy

package net.sourceforge.openutils.mgnlmessages.pages;

import info.magnolia.cms.util.ClasspathResourcesUtil;

import java.io.IOException;
import java.io.InputStream;
import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;


/**
 * @author molaschi
 * @version $Id: DefaultMessagesImpl.java 4124 2008-09-22 14:56:46Z fgiust $
 */
public class DefaultMessagesImpl extends info.magnolia.cms.i18n.DefaultMessagesImpl
{

    /**
     * @param basename
     * @param locale
     */
    public DefaultMessagesImpl(String basename, Locale locale)
    {
        super(basename, locale);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String get(String key)
    {
        if (this.getBundle() == null)
        {
            return "??????";
        }
        return super.get(key);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected ResourceBundle getBundle()
    {
        if (bundle == null)
        {
            InputStream stream = null;
            try
            {
                if (StringUtils.isEmpty(getLocale().getCountry()))
                {
                    stream = ClasspathResourcesUtil.getStream("/"
                        + StringUtils.replace(basename, ".", "/")
                        + "_"
                        + getLocale().getLanguage()
                        + ".properties", false);
                }
                else
                {
                    stream = ClasspathResourcesUtil.getStream("/"
                        + StringUtils.replace(basename, ".", "/")
                        + "_"
                        + getLocale().getLanguage()
                        + "_"
                        + getLocale().getCountry()
                        + ".properties", false);
                }

                if (stream != null)
                {
                    bundle = new PropertyResourceBundle(stream);
                }
                else
                {
                    bundle = null;
                }
            }
            catch (IOException e)
            {
                log.error("can't load messages for " + basename);
            }
            finally
            {
                IOUtils.closeQuietly(stream);
            }
        }
        return bundle;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy