Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/resources/Resources.java @ 154:03362976fa0f
DischargeTables: Cache the scale, too. Otherwise two calls to getValues() with different arguments will result in the same output.
flys-artifacts/trunk@1591 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 28 Mar 2011 15:21:27 +0000 |
parents | 25593857b8f8 |
children | 8a4c219fd0ee |
line wrap: on
line source
package de.intevation.flys.artifacts.resources; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; import org.apache.log4j.Logger; import de.intevation.artifacts.CallMeta; /** * This class provides methods for i18n. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class Resources { /** The logger that is used in this class.*/ private static Logger logger = Logger.getLogger(Resources.class); /** The singleton instance.*/ private static Resources INSTANCE; /** The locales supported by this server.*/ protected Locale[] locales; /** * No instance of this class is necessary. */ private Resources() { } /** * Returns the locales supported by this server. * * @return the supported locales. */ public Locale[] getLocales() { if (locales == null) { readLocales(); } return locales; } /** * Read the locales configured for this server. */ protected void readLocales() { // TODO IMPLEMENT ME locales = new Locale[2]; locales[0] = Locale.GERMANY; locales[1] = Locale.ENGLISH; } /** * This method returns the translated value for <i>key</i> or <i>def</i> if * <i>key</i> is not existing in the resource bundle. * * @param meta The CallMeta object of the request that contains the * preferred locale. * @param key The key that should be translated. * @param def A default value that is returned, if <i>key</i> was not found. * * @return the translated message. */ public static String getMsg(CallMeta meta, String key, String def) { if (INSTANCE == null) { INSTANCE = new Resources(); } Locale[] locales = INSTANCE.getLocales(); Locale locale = meta.getPreferredLocale(locales); return getMsg(locale, key, def); } /** * This method returns the translated value for <i>key</i> or <i>def</i> if * <i>key</i> is not existing in the resource bundle. * * @param locale The locale. * @param key The key that should be translated. * @param def A default value that is returned, if <i>key</i> was not found. * * @return the translated message. */ public static String getMsg(Locale locale, String key, String def) { ResourceBundle bundle = ResourceBundle.getBundle("messages", locale); try { return bundle.getString(key); } catch (MissingResourceException mre) { logger.warn("No message found for key: " + key); return def; } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :