X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FMessageManager.java;h=5a5c70fdad837e3d5d4b833dd2308336ddf31240;hb=refs%2Fheads%2Fj2s%2Fdevelop-bh;hp=0ba756679f3b6212a59cd9f3ae217da762574b12;hpb=0814a807f8dc1c278e43bec883ce83e6a2b748e7;p=jalview.git diff --git a/src/jalview/util/MessageManager.java b/src/jalview/util/MessageManager.java index 0ba7566..5a5c70f 100644 --- a/src/jalview/util/MessageManager.java +++ b/src/jalview/util/MessageManager.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.util; import java.text.MessageFormat; @@ -6,82 +26,105 @@ import java.util.ResourceBundle; import java.util.logging.Level; import java.util.logging.Logger; +import javajs.J2SRequireImport; + /** * * @author David Roldan Martinez * @author Thomas Abeel * - * + * */ -public class MessageManager { +@J2SRequireImport ({java.text.MessageFormat.class}) +public class MessageManager +{ - private static ResourceBundle rb; - - private static Logger log=Logger.getLogger(MessageManager.class.getCanonicalName()); - - private static Locale loc; - - - - static{ - try { - /* Localize Java dialogs */ - loc = Locale.getDefault(); - // 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()); - } - } catch (Exception q) { - log.warning("Exception when initting Locale for i18n messages\n"+q.getMessage()); - q.printStackTrace(); - } - catch (Error v) + private static ResourceBundle rb; + + private static Logger log = Logger.getLogger(MessageManager.class + .getCanonicalName()); + + private static Locale loc; + + static + { + try + { + /* Localize Java dialogs */ + loc = Locale.getDefault(); + // Locale.setDefault(loc); + /* Getting messages for GV */ + log.info("Getting messages for lang: " + loc); + rb = ResourceBundle.getBundle("lang.Messages", loc); + // BH rb == null just throws the exception + if (rb == null || log.isLoggable(Level.FINEST)) { - log.warning("Error when initting Locale for i18n messages\n"+v.getMessage()); - v.printStackTrace(); + // this might take a while, so we only do it if it will be shown + log.finest("Language keys: " + rb.keySet()); } - - + } catch (Exception q) + { + log.warning("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" + + v.getMessage()); + v.printStackTrace(); } - - public static String getString(String key){ - String value = "[missing key] " + key; - try{ - value = rb.getString(key); - }catch(Exception e){ - log.warning("I18N missing: "+loc+"\t"+key); - } - return value; + + } + + public static String getString(String key) + { + String value = "[missing key] " + key; + try + { + value = rb.getString(key); + } catch (Exception e) + { + log.warning("I18N missing: " + loc + "\t" + key); } - - 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); // BH not rb.getString + } + + public static String formatMessage(String key, String[] params) + { + return MessageFormat.format(getString(key), (Object[]) params); // BH not rb.getString + } /** - * lookup and return 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.if the key doesn't exist. - * Use this for programatically constructed keys that have have a human readable alternative used in the program (e.g. BLOSUM62 and label.score_blosum62) + * lookup and return 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.if the key doesn't exist. Use this for + * programatically constructed keys that have 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) { - log.finest("I18N missing key with root "+keyroot+": "+loc+"\t"+smkey); + String smkey = keyroot + name.toLowerCase().replaceAll(" ", ""); + try + { + name = rb.getString(smkey); + } catch (Exception x) + { + log.finest("I18N missing key with root " + keyroot + ": " + loc + + "\t" + smkey); } return name; }