KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > common > LanguageTraslator


1 package com.calipso.reportgenerator.common;
2
3 import org.apache.commons.configuration.Configuration;
4 import org.apache.commons.configuration.PropertiesConfiguration;
5
6 import java.util.Locale JavaDoc;
7
8 /**
9  * Esta clase se encarga de convertir los textos al lenguaje indicado. Implementa la internacionalización.
10  */

11
12 public class LanguageTraslator {
13
14   private static Locale JavaDoc locale;
15   private static ILanguageTraslator currentLanguage;
16   private static String JavaDoc path;
17
18   /**
19    * Crea una nueva instancia de Locale segun el lenguaje
20    * por recibe por parametro
21    * @param language
22    * @param country
23    * @param languagePath
24    */

25   public static void newLocaleFrom(String JavaDoc language,String JavaDoc country, String JavaDoc languagePath){
26     locale = new Locale JavaDoc(language,country);
27     path = languagePath;
28   }
29
30   public static Locale JavaDoc getLocale() {
31     return locale;
32   }
33
34   /**
35    * Devuelve un String a partir del id.
36    * El idioma del String devuelto corresponde
37    * a la instancia del Locale actual.
38    * @param id
39    * @return
40    */

41   public static String JavaDoc traslate(String JavaDoc id) {
42     String JavaDoc s = "";
43     try {
44       s = getInstance().getExceptionFromId(id);
45     } catch (Exception JavaDoc e) {
46       ReportManagerLogger.error("Traslate Error:"+id);
47       s = id;
48     }
49     return s;
50   }
51
52   /**
53    * Crea una instancia de la clase que contiene las traducciones
54    * segun el lenguaje definido en la instancia de Locale. Para
55    * cada lenguaje existe una clase diferente. Por defecto devuelve
56    * una clase que contiene las traducciones en castellano.
57    * @return ILanguageTraslator
58    */

59   private static ILanguageTraslator getInstance() {
60     Class JavaDoc languageTraslatorClass=null;
61     if((currentLanguage == null) && ((locale != null))){
62       if(locale.getLanguage().toUpperCase().equals("ES")) {
63         try {
64           languageTraslatorClass = Class.forName("com.calipso.reportgenerator.common.LanguageTraslator" + locale.getLanguage().toUpperCase());
65         }catch (Exception JavaDoc e){
66           ReportManagerLogger.error("ERROR - LanguageTraslator" + locale.getLanguage().toUpperCase());
67           languageTraslatorClass = new LanguageTraslatorES().getClass(); //todo : revisar en modo EJB
68
}
69         try {
70           currentLanguage = (ILanguageTraslator) languageTraslatorClass.newInstance();
71         }
72         catch (Exception JavaDoc e) {
73           ReportManagerLogger.error("ERROR - LanguageTraslator" + locale.getLanguage().toUpperCase());
74           currentLanguage = null;
75         }
76       } else {
77         try {
78           Configuration configuration = new PropertiesConfiguration(path +"/"+ locale.getLanguage()+".properties");
79           currentLanguage = new LanguageTraslatorCustomizable(configuration);
80         } catch (Exception JavaDoc e) {
81           ReportManagerLogger.error("ERROR - LanguageTraslator" + locale.getLanguage().toUpperCase());
82           currentLanguage = null;
83         }
84       }
85     }
86     return currentLanguage ;
87   }
88 }
89
Popular Tags