|
package i18n.article; import java.io.*; import java.util.Enumeration; import java.util.Hashtable; import java.util.Locale; import java.util.PropertyResourceBundle; import java.util.ResourceBundle;
/** * <p>Title:多国语言的后台实现类 </p> * <p>Description: 根据属性文件及区域与语言设置,得到对应的语言</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: Timer Corporation</p> * @author:宋兆辉 * @version 1.0 */
public class Resource {
private static final String HEAD_FILE = "ATTR"; //属性文件名的前缀 private static final String LAST_FILE=".properties"; //属性文件名的后缀 private static final String FILE_PATH="c://"; //定义属性文件存放的目录
public Resource() { } /*以下是根据传入的属性文件中的"键",而得到与区域与语言设置相对应的"值"*/
public synchronized String srcStr(String disStr) { String ret = ""; try {
Locale locale = Locale.getDefault(); //获取系统的区域与语言默认设置 System.out.println(""); String baseName = new StringBuffer() .append(HEAD_FILE).append("_").append(locale.toString()) .append(LAST_FILE).toString(); //根据local属性,前缀以及后缀生成文件名
String fileName = new StringBuffer(FILE_PATH).append(baseName) .toString(); //获取文件的完整路径
InputStream is = new FileInputStream(fileName); //生成文件输入流 PropertyResourceBundle pr = new PropertyResourceBundle(is); //根据输入流构造PropertyResourceBundle的实例 ret = pr.getString(disStr); if(locale.equals(Locale.CHINA)){ ret = new String(ret.getBytes("ISO-8859-1"),"GB2312"); } //如果是要显示中文,则要进行内码的转换 is.close(); return ret; } catch (Exception e) { e.printStackTrace(); return disStr; } } } |