001    package com.thaiopensource.util;
002    
003    import java.util.ResourceBundle;
004    import java.text.MessageFormat;
005    
006    public class Localizer {
007      private final Class cls;
008      private ResourceBundle bundle;
009    
010      public Localizer(Class cls) {
011        this.cls = cls;
012      }
013    
014      public String message(String key) {
015        return MessageFormat.format(getBundle().getString(key), new Object[]{});
016      }
017    
018      public String message(String key, Object arg) {
019        return MessageFormat.format(getBundle().getString(key),
020                                    new Object[]{arg});
021      }
022    
023      public String message(String key, Object arg1, Object arg2) {
024        return MessageFormat.format(getBundle().getString(key),
025                                    new Object[]{arg1, arg2});
026      }
027    
028      public String message(String key, Object[] args) {
029        return MessageFormat.format(getBundle().getString(key), args);
030      }
031    
032      private ResourceBundle getBundle() {
033        if (bundle == null){
034          String s = cls.getName();
035          int i = s.lastIndexOf('.');
036          if (i > 0)
037            s = s.substring(0, i + 1);
038          else
039            s = "";
040          bundle = ResourceBundle.getBundle(s + "resources.Messages");
041        }
042        return bundle;
043      }
044    }