예제 #1
0
 public String toString(Locale loc, String dftVal) {
   String dv = (dftVal != null) ? dftVal : this.dft;
   if ((loc != null) && (this.pkg != null)) {
     return this.toString(I18N.getI18N(this.pkg, loc), dv);
   } else {
     return I18N.decodeNewLine(dv);
   }
 }
예제 #2
0
 public String toString(I18N i18n, String dftVal) {
   String dv = (dftVal != null) ? dftVal : this.dft;
   if (i18n != null) {
     return i18n.getString(this.getKey(), dv);
   } else {
     return I18N.decodeNewLine(dv);
   }
 }
예제 #3
0
 /**
  * ** Gets the Localized value for the specified key. The default String text is return if ** the
  * specified key does not exist ** @param key The LocalStrings key ** @param dft The default
  * String text to return if the LocalStrings key does not exist ** @param args An array of
  * replacement fields ** @return The Localized String text
  */
 public String getString(String key, String dft, Object args[]) {
   String val = this.getString(key, dft);
   if ((args != null) && (args.length > 0) && (val != null)) {
     try {
       MessageFormat mf = new MessageFormat(val);
       mf.setLocale(this.locale);
       StringBuffer sb = mf.format(args, new StringBuffer(), null);
       return I18N.decodeNewLine(sb).toString();
     } catch (Throwable th) {
       Print.logInfo("Exception: " + key + " ==> " + val);
     }
   }
   return I18N.decodeNewLine(val);
 }
예제 #4
0
  /**
   * ** Returns an I18N instance based on the specified package name and Locale ** @param pkgName
   * The resource package name ** @param loc The Locale resource from with the localized text is
   * loaded
   */
  public static I18N getI18N(String pkgName, Locale loc) {
    if (pkgName != null) {
      loc = I18N.getLocale(loc);

      /* get package map for specific Locale */
      Map<String, I18N> packageMap = localeMap.get(loc);
      if (packageMap == null) {
        packageMap = new HashMap<String, I18N>();
        localeMap.put(loc, packageMap);
      }

      /* get I18N instance for package */
      I18N i18n = packageMap.get(pkgName);
      if (i18n == null) {
        i18n = new I18N(pkgName, loc);
        packageMap.put(pkgName, i18n);
      }
      return i18n;

    } else {

      /* no package specified */
      return null;
    }
  }
예제 #5
0
 /**
  * ** Returns the specified Locale, or the default Locale if the specified Locale is null
  * ** @param loc The default Locale ** @return A Java Locale instance
  */
 public static Locale getLocale(Locale loc) {
   if (loc != null) {
     return loc;
   } else {
     return I18N.getDefaultLocale();
   }
 }
예제 #6
0
 public String toString() {
   String locStr = RTConfig.getString(RTKey.SESSION_LOCALE, null);
   if (StringTools.isBlank(locStr)) {
     return this.getDefault();
   } else {
     Locale loc = I18N.getLocale(locStr);
     return this.toString(loc);
   }
 }
예제 #7
0
 /**
  * ** Gets the Localized value for the specified key. The default String text is returned ** if
  * the specified key does not exist ** @param key The LocalStrings key ** @param dft The default
  * String text to return if the LocalStrings key does not exist ** @return The Localized String
  * text
  */
 public String getString(String key, String dft) {
   if (!StringTools.isBlank(key) && (this.resBundle != null)) {
     RTProperties cfgProps = RTConfig.getConfigFileProperties();
     if (!cfgProps.hasProperty(key) || cfgProps.getBoolean(key, true)) {
       try {
         String s = this.resBundle.getString(key);
         if (s != null) {
           return I18N.decodeNewLine(s);
         }
       } catch (Throwable th) {
         // Print.logException("",th);
         // MissingResourceException - if no object for the given key can be found
         // ClassCastException - if the object found for the given key is not a string
       }
     }
   }
   return I18N.decodeNewLine(dft);
 }
예제 #8
0
  /** ** Debug/Testing entry point ** @param argv The command-line args */
  public static void main(String argv[]) {
    RTConfig.setCommandLineArgs(argv);

    if (RTConfig.hasProperty(ARG_PACKAGE)) {
      String pkg = RTConfig.getString(ARG_PACKAGE, "org.opengts.util");
      String loc = RTConfig.getString(ARG_LOCALE, "en");
      String key = RTConfig.getString(ARG_KEY, "");
      Locale locale = I18N.getLocale(loc);
      Print.sysPrintln("Package: " + pkg);
      Print.sysPrintln("Locale : " + locale + " [" + loc + "]");
      Print.sysPrintln("Key    : " + key);
      I18N i18n = I18N.getI18N(pkg, locale);
      if (i18n != null) {
        Print.sysPrintln("String : " + i18n.getString(key, "Undefined"));
      } else {
        Print.sysPrintln("Package resource not found");
      }
      System.exit(0);
    }

    if (RTConfig.hasProperty("test")) {
      I18N i18n = getI18N(I18N.class, null);
      i18n.printKeyValues();
      String m3 =
          i18n.getString(
              "m.m3",
              "{0}",
              new Object() {
                public String toString() {
                  return mainStr;
                }
              });
      String m2 = i18n.getString("m.m2", "How Now Brown {0}", m3);
      String m1 = i18n.getString("m.m1", "Message: \\n{0}", m2);
      Print.sysPrintln(m1);
      mainStr = "Horse";
      Print.sysPrintln(m1);
    }
  }
예제 #9
0
 /**
  * ** Constructor ** @param pkgName The resource package name ** @param loc The Locale resource
  * from with the localized text is loaded
  */
 private I18N(String pkgName, Locale loc) {
   String bundleName = null;
   try {
     this.locale = I18N.getLocale(loc);
     bundleName =
         ((pkgName == null) || pkgName.equals("")) ? LOCAL_STRINGS : (pkgName + _LOCAL_STRINGS);
     this.resBundle = ResourceBundle.getBundle(bundleName, this.locale);
     // Print.logInfo("Found bundle: " + bundleName);
   } catch (Throwable th) {
     // MissingResourceException
     if (loc != null) {
       // quietly ignore this exception if (loc == null)
       Print.logInfo("Bundle not found: " + bundleName + " [" + th);
     }
     this.resBundle = null;
   }
 }
예제 #10
0
 /**
  * ** Returns an I18N instance based on the specified package name and Locale ** @param pkg The
  * resource package ** @param loc The Locale resource from with the localized text is loaded
  */
 public static I18N getI18N(Package pkg, Locale loc) {
   return I18N.getI18N(pkg.getName(), loc);
 }
예제 #11
0
 /**
  * ** Returns an I18N instance based on the specified package name and Locale ** @param pkgClz The
  * class from which the class package is derived ** @param loc The Locale resource from with the
  * localized text is loaded
  */
 public static I18N getI18N(Class pkgClz, Locale loc) {
   return I18N.getI18N(pkgClz.getPackage().getName(), loc);
 }
예제 #12
0
 /**
  * ** Returns an I18N.Text instance used for lazy localization ** @param clazz The class from
  * which the package is derived ** @param key The localization key ** @param dft The default
  * localized text ** @return An I18N.Text instance used for lazy localization
  */
 public static I18N.Text getString(Class clazz, String key, String dft) {
   // i18n 'key' is separately specified
   String pkg = (clazz != null) ? clazz.getPackage().getName() : null;
   return I18N.parseText(pkg, key, dft);
 }
예제 #13
0
 public String getDefault(boolean decodeNewLine) {
   return decodeNewLine ? I18N.decodeNewLine(this.dft) : this.dft; // never null
 }
예제 #14
0
 public String getDefault() {
   return I18N.decodeNewLine(this.dft); // never null
 }
예제 #15
0
 /**
  * ** Gets the Java Locale instance based on the specified locale name ** @param loc The name of
  * the Locale ** @return The Java Locale instance
  */
 public static Locale getLocale(String loc) {
   Locale locale = I18N.getLocale(loc, null);
   return (locale != null) ? locale : I18N.getDefaultLocale();
 }