用类的方式实现资源国际化

Java支持两种方式存放国际化资源,properties文件和类文件。properties文件简单易用,类文件效率高。这里介绍采用类包装国际化资源的方法,而用properties包装的方法有太多的介绍,就不说了吧。

1、首先明确资源类文件放在应用的什么地方。因为是类,所以和其他类没有什么差别,同样可以定义成如com.test.resources.info普通类名,按照要求,需要继承ListResourceBundle类,实例如下:

package com.test.resources

import java.util.ListResourceBundle;

public class info_zh_CN extends ListResourceBundle{

   private final Object res[][]={

  //这里放置值对

  {"key","对应的值"}

  };

  

  @Override
    protected Object[][] getContents() {       
        return res;
    }   

}

2、使用这个资源类

在需要的地方写下列语句就可以了

   Locale l = Locale.getDefault();
        ResourceBundle bundle = ResourceBundle.getBundle("com.test.resources.info", l);
        String msg = bundle.getString("key");   //得到值

3、占位符输出使用 MessageFormat.format()函数,类似properties的使用。

4、优点:(1)包装在类中,似乎可以不用native2ascii处理;(2)类的访问更加灵活,只需指明包名即可;(3)不需要特殊的配置

一点拙见而已。

posted on 2010-01-03 15:44  .3S Swimmer  阅读(235)  评论(0编辑  收藏  举报