-
- public static Locale getLocale() {
- return loc;
- }
- public static String formatMessage(String key, Object... params){
- return MessageFormat.format(rb.getString(key), (Object[]) params);
+ return value;
+ }
+
+ public static Locale getLocale()
+ {
+ return loc;
+ }
+
+ public static String formatMessage(String key, Object... params)
+ {
+ return MessageFormat.format(getString(key), params);
+ }
+
+ public static String formatMessage(String key, String[] params)
+ {
+ return MessageFormat.format(getString(key), (Object[]) params);
+ }
+
+ /**
+ * Looks up and returns a key given a root and a human-readable(ish) name that
+ * when combined might resolve to an i18n string. If the key doesn't resolve,
+ * then name is returned. Use this for programmatically constructed keys that
+ * have a human readable alternative used in the program (e.g. BLOSUM62 and
+ * label.score_blosum62).
+ *
+ * @param keyroot
+ * @param name
+ * @return
+ */
+ public static String getStringOrReturn(String keyroot, String name)
+ {
+ String smkey = keyroot + name.toLowerCase().replaceAll(" ", "");
+ try
+ {
+ name = rb.getString(smkey);
+ } catch (Exception x)
+ {
+ 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);