X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2FI18nManager.java;h=143d7c884b418584d9ffba8a242dffb95e404b0e;hb=1ee49ae3c8ef3aa2e63eadd458531e5f8bd4f92c;hp=80be52b44f60aa795dbe80039f279334baae7a69;hpb=54b9d8bc8f0025ccf97a67d9dd217ef1f9cf082f;p=GpsPrune.git diff --git a/tim/prune/I18nManager.java b/tim/prune/I18nManager.java index 80be52b..143d7c8 100644 --- a/tim/prune/I18nManager.java +++ b/tim/prune/I18nManager.java @@ -2,6 +2,7 @@ package tim.prune; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.util.Locale; import java.util.MissingResourceException; @@ -35,14 +36,19 @@ public abstract class I18nManager EnglishTexts = ResourceBundle.getBundle(BUNDLE_NAME, BACKUP_LOCALE); // Get bundle for selected locale, if any - if (inLocale != null) + try { - LocalTexts = ResourceBundle.getBundle(BUNDLE_NAME, inLocale); + if (inLocale != null) + { + LocalTexts = ResourceBundle.getBundle(BUNDLE_NAME, inLocale); + } + else + { + // locale is null so just use the system default + LocalTexts = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault()); + } } - else - { - // locale is null so just use the system default - LocalTexts = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault()); + catch (MissingResourceException mre) { // ignore error, default to english } } @@ -50,21 +56,26 @@ public abstract class I18nManager /** * Add a language file * @param inFilename filename of file + * @throws FileNotFoundException if load failed */ - public static void addLanguageFile(String inFilename) + public static void addLanguageFile(String inFilename) throws FileNotFoundException { FileInputStream fis = null; + boolean fileLoaded = false; try { File file = new File(inFilename); ExternalPropsFile = new Properties(); fis = new FileInputStream(file); ExternalPropsFile.load(fis); + fileLoaded = true; // everything worked } catch (IOException ioe) {} finally { try { fis.close(); } catch (Exception e) {} } + // complain if file wasn't loaded, by throwing a filenotfound exception + if (!fileLoaded) throw new FileNotFoundException(); } @@ -75,22 +86,19 @@ public abstract class I18nManager */ public static String getText(String inKey) { - String value = null; // look in external props file if available - if (ExternalPropsFile != null) + if (ExternalPropsFile != null && ExternalPropsFile.containsKey(inKey)) { - value = ExternalPropsFile.getProperty(inKey); - if (value != null && !value.equals("")) - return value; + return ExternalPropsFile.getProperty(inKey); } // look in extra texts if available if (LocalTexts != null) { try { - value = LocalTexts.getString(inKey); - if (value != null && !value.equals("")) - return value; + if (LocalTexts.containsKey(inKey)) { + return LocalTexts.getString(inKey); + } } catch (MissingResourceException mre) {} } @@ -99,9 +107,9 @@ public abstract class I18nManager { try { - value = EnglishTexts.getString(inKey); - if (value != null && !value.equals("")) - return value; + if (EnglishTexts.containsKey(inKey)) { + return EnglishTexts.getString(inKey); + } } catch (MissingResourceException mre) {} }