/*
GNU Lesser General Public License
Translatrix - General Access To Language Resource Bundles
Copyright (C) 2002 Howard A Kistler
This library 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 library 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.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.hexidec.util;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Translatrix
{
private static ResourceBundle langResources;
private static String bundleName;
public Translatrix(String bundle)
{
bundleName = new String(bundle);
try
{
langResources = ResourceBundle.getBundle(bundleName);
}
catch(MissingResourceException mre)
{
logException("MissingResourceException while loading language file", mre);
}
}
public static void setBundleName(String bundle)
{
bundleName = new String(bundle);
try
{
langResources = ResourceBundle.getBundle(bundleName);
}
catch(MissingResourceException mre)
{
logException("MissingResourceException while loading language file", mre);
}
}
public static void setLocale(Locale locale)
{
if(bundleName == null)
{
return;
}
if(locale != null)
{
try
{
langResources = ResourceBundle.getBundle(bundleName, locale);
}
catch(MissingResourceException mre1)
{
try
{
langResources = ResourceBundle.getBundle(bundleName);
}
catch(MissingResourceException mre2)
{
logException("MissingResourceException while loading language file", mre2);
}
}
}
else
{
try
{
langResources = ResourceBundle.getBundle(bundleName);
}
catch(MissingResourceException mre)
{
logException("MissingResourceException while loading language file", mre);
}
}
}
public static void setLocale(String sLanguage, String sCountry)
{
if(sLanguage != null && sCountry != null)
{
setLocale(new Locale(sLanguage, sCountry));
}
}
public static String getTranslationString(String originalText)
{
if(langResources == null || bundleName == null)
{
return originalText;
}
else
{
try
{
return langResources.getString(originalText);
}
catch(Exception e)
{
return originalText;
}
}
}
private static void logException(String internalMessage, Exception e)
{
System.err.println(internalMessage);
e.printStackTrace(System.err);
}
}