/* Jug Management is a web application conceived to manage user groups or
* communities focused on a certain domain of knowledge, whose members are
* constantly sharing information and participating in social and educational
* events. Copyright (C) 2011 Ceara Java User Group - CEJUG.
*
* This application is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* This application is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* There is a full copy of the GNU Lesser General Public License along with
* this library. Look for the file license.txt at the root level. If you do not
* find it, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA.
* */
package org.cejug.yougi.util;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import javax.faces.context.FacesContext;
/**
* Encapsulates the complexity of getting the resource bundle from the context.
* Actually, this is so complex that a better approach should be investigated, or
* a solution presented to spec leaders.
* @author Hildeberto Mendonca - http://www.hildeberto.com
*/
public class ResourceBundleHelper {
private Locale locale;
public ResourceBundleHelper() {
this.locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
}
public ResourceBundleHelper(Locale locale) {
this.locale = locale;
}
public String getMessage(String key) {
return getMessageFromResourceBundle(key);
}
private String getMessageFromResourceBundle(String key) {
ResourceBundle bundle = null;
String bundleName = "org.cejug.web.bundles.Resources";
String message = "";
try {
bundle = ResourceBundle.getBundle(bundleName, locale, getCurrentLoader(bundleName));
} catch (MissingResourceException e) {
return "?";
}
if (bundle == null)
return "?";
try {
message = bundle.getString(key);
} catch (Exception e) {
}
return message;
}
private static ClassLoader getCurrentLoader(Object fallbackClass) {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if (loader == null)
loader = fallbackClass.getClass().getClassLoader();
return loader;
}
}