private LanguagePack getPack(Locale locale) throws MissingResourceException { LanguagePack pack = packMap.get(locale); if (pack != null) { return pack; } synchronized (packMap) { // again, now with synchronization pack = packMap.get(locale); if (pack != null) { return pack; } pack = new LanguagePack(); pack.locale = locale; if (dictionaryFile == null) { pack.resourceBundle = new ResourceBundleLoader().loadResourceBundle(className, locale); } packMap.put(locale, pack); return pack; } }
public String getString(String key, Locale locale) throws MissingResourceException { LanguagePack pack = getPack(locale); return pack.getString(key); }