package ctex; import java.io.File; import java.net.URL; import java.util.Enumeration; import java.util.Locale; import java.util.ResourceBundle; import java.util.Vector; public class MultilLanguage { private Vector<Locale> SupportedLanguage = new Vector<Locale>(); private Locale myLocale; private ResourceBundle myBundle; public Vector<Locale> getSupportedLanguage(){ SupportedLanguage.clear(); Locale[] ltest = Locale.getAvailableLocales(); int count = 0; File file = null; while (count != ltest.length){ URL resource = getClass().getResource("Lang_" + ltest[count].toString() + ".properties"); file = new File(resource.toString()); if (file.exists()) { SupportedLanguage.add(ltest[count]); } count++; } return SupportedLanguage; } public MultilLanguage (){ Locale.setDefault(Locale.ENGLISH); } public void setLocale(String lang){ myLocale = Locale.ENGLISH; Locale[] ltest = Locale.getAvailableLocales(); int count = 0; while (count != ltest.length){ if (lang.toLowerCase().equals(ltest[count].toString().toLowerCase())){ myLocale = ltest[count]; } count++; } myBundle = ResourceBundle.getBundle("Lang", myLocale); } public String getString (String Key){ try { return myBundle.getString(Key); } catch (Throwable e) { return Key; } } public void showAllKeys() { Enumeration<String> bundleKeys = myBundle.getKeys(); while (bundleKeys.hasMoreElements()) { String key = (String)bundleKeys.nextElement(); String value = myBundle.getString(key); System.out.println("key = " + key + ", " + "value = " + value); } } }