Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

I18N.java

00001 /**
00002  * C-JDBC: Clustered JDBC.
00003  * Copyright (C) 2002-2004 French National Institute For Research In Computer
00004  * Science And Control (INRIA).
00005  * Contact: c-jdbc@objectweb.org
00006  * 
00007  * This library is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU Lesser General Public License as published by the
00009  * Free Software Foundation; either version 2.1 of the License, or any later
00010  * version.
00011  * 
00012  * This library is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00014  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00015  * for more details.
00016  * 
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00020  *
00021  * Initial developer(s): Nicolas Modrzyk
00022  * Contributor(s): ______________________.
00023  */
00024 
00025 package org.objectweb.cjdbc.common.i18n;
00026 
00027 import java.text.MessageFormat;
00028 import java.util.ResourceBundle;
00029 
00030 /**
00031  * This class defines a I18N
00032  * 
00033  * @author <a href="mailto:Nicolas.Modrzyk@inria.fr">Nicolas Modrzyk </a>
00034  * @version 1.0
00035  */
00036 public abstract class I18N
00037 {
00038   /**
00039    * Returns associated sentence to that key
00040    * 
00041    * @param key the key to find in the translation file
00042    * @param bundle then translation bundle to use
00043    * @return the corresponding sentence of the key if not found
00044    */
00045   public static String get(ResourceBundle bundle, String key)
00046   {
00047     try
00048     {
00049       return bundle.getString(key);
00050     }
00051     catch (Exception e)
00052     {
00053       return key;
00054     }
00055   }
00056 
00057   /**
00058    * Returns translated key with instanciated parameters
00059    * 
00060    * @param bundle then translation bundle to use
00061    * @param key the key to find in translation file.
00062    * @param parameter the parameter value
00063    * @return the corresponding sentence with key and parameters
00064    */
00065   public static String get(ResourceBundle bundle, String key, boolean parameter)
00066   {
00067     return MessageFormat.format(get(bundle, key), new Object[]{String
00068         .valueOf(parameter)});
00069   }
00070 
00071   /**
00072    * Returns translated key with instanciated parameters
00073    * 
00074    * @param bundle then translation bundle to use
00075    * @param key the key to find in translation file.
00076    * @param parameter the parameter value
00077    * @return the corresponding sentence with key and parameters
00078    */
00079   public static String get(ResourceBundle bundle, String key, int parameter)
00080   {
00081     return MessageFormat.format(get(bundle, key), new Object[]{String
00082         .valueOf(parameter)});
00083   }
00084 
00085   /**
00086    * Returns translated key with instanciated parameters
00087    * 
00088    * @param bundle then translation bundle to use
00089    * @param key the key to find in translation file.
00090    * @param parameter the parameter value
00091    * @return the corresponding sentence with key and parameters
00092    */
00093   public static String get(ResourceBundle bundle, String key, long parameter)
00094   {
00095     return MessageFormat.format(get(bundle, key), new Object[]{String
00096         .valueOf(parameter)});
00097   }
00098 
00099   /**
00100    * Replace <code>REPLACE_CHAR</code> in the translated message with
00101    * parameters. If you have more parameters than charaters to replace,
00102    * remaining parameters are appended as a comma separated list at the end of
00103    * the message.
00104    * 
00105    * @param bundle then translation bundle to use
00106    * @param key the key to find in the translation file
00107    * @param parameters to put inside square braquets
00108    * @return the corresponding sentence of the key if not found
00109    */
00110   public static String get(ResourceBundle bundle, String key,
00111       Object[] parameters)
00112   {
00113     return MessageFormat.format(get(bundle, key), parameters);
00114   }
00115 
00116   /**
00117    * Same as above but implies creation of an array for the parameter
00118    * 
00119    * @param bundle then translation bundle to use
00120    * @param key to translate
00121    * @param parameter to put in translation
00122    * @return translated message
00123    */
00124   public static String get(ResourceBundle bundle, String key, Object parameter)
00125   {
00126     return MessageFormat.format(get(bundle, key), new Object[]{parameter});
00127   }
00128 
00129 }

Generated on Mon Apr 11 22:01:32 2005 for C-JDBC by  doxygen 1.3.9.1