X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Futil%2FMessageManager.java;h=bb94566b7848361881b0c879af7f31d9bb0b827d;hb=6a44ba8cd68f29329876560cfe24403fe3e7a565;hp=435950630d1dd728d88db2a63553951dfed4aca0;hpb=b8c8a9017c9abd4cd0b2d685d34a3c4b7982d7ac;p=jalview.git diff --git a/src/jalview/util/MessageManager.java b/src/jalview/util/MessageManager.java index 4359506..bb94566 100644 --- a/src/jalview/util/MessageManager.java +++ b/src/jalview/util/MessageManager.java @@ -21,10 +21,13 @@ package jalview.util; import java.text.MessageFormat; +import java.util.HashSet; import java.util.Locale; import java.util.ResourceBundle; -import java.util.logging.Level; -import java.util.logging.Logger; +import java.util.ResourceBundle.Control; +import java.util.Set; + +import org.apache.log4j.Logger; /** * @@ -37,11 +40,14 @@ public class MessageManager { private static ResourceBundle rb; + // BH 2018 switched to org.apache.llog4j.Logger private static Logger log = Logger .getLogger(MessageManager.class.getCanonicalName()); private static Locale loc; + private static Set reportedMissing = new HashSet<>(); + static { try @@ -51,20 +57,21 @@ public class MessageManager // Locale.setDefault(loc); /* Getting messages for GV */ log.info("Getting messages for lang: " + loc); - rb = ResourceBundle.getBundle("lang.Messages", loc); - if (log.isLoggable(Level.FINEST)) - { - // this might take a while, so we only do it if it will be shown - log.finest("Language keys: " + rb.keySet()); - } + Control control = Control.getControl(Control.FORMAT_PROPERTIES); + rb = ResourceBundle.getBundle("lang.Messages", loc, control); + // if (log.isLoggable(Level.FINEST)) + // { + // // this might take a while, so we only do it if it will be shown + // log.info("Language keys: " + rb.keySet()); // was FINEST + // } } catch (Exception q) { - log.warning("Exception when initting Locale for i18n messages\n" + log.warn("Exception when initting Locale for i18n messages\n" + q.getMessage()); q.printStackTrace(); } catch (Error v) { - log.warning("Error when initting Locale for i18n messages\n" + log.warn("Error when initting Locale for i18n messages\n" + v.getMessage()); v.printStackTrace(); } @@ -86,7 +93,8 @@ public class MessageManager value = rb.getString(key); } catch (Exception e) { - log.warning("I18N missing: " + loc + "\t" + key); + String msg = "I18N missing: " + loc + "\t" + key; + logWarning(key, msg); } return value; } @@ -112,7 +120,7 @@ public class MessageManager return MessageFormat.format(rb.getString(key), params); } catch (Exception e) { - log.warning("I18N missing: " + loc + "\t" + key); + log.warn("I18N missing: " + loc + "\t" + key); } String value = "[missing key] " + key + ""; for (Object p : params) @@ -160,9 +168,25 @@ public class MessageManager name = rb.getString(smkey); } catch (Exception x) { - log.finest("I18N missing key with root " + keyroot + ": " + loc + "\t" - + smkey); + String msg = "I18N missing key with root " + keyroot + ": " + loc + "\t" + + smkey; + logWarning(smkey, msg); } return name; } + + /** + * Logs missing keys (each key once only per run) + * + * @param key + * @param msg + */ + private static void logWarning(String key, String msg) + { + if (!reportedMissing.contains(key)) + { + reportedMissing.add(key); + log.info(msg); + } + } }