案例分析:
编写程序,实现国际化应用,从命令行输入国家的代号,中国1,美国2,然后根据不同的选项显示不同的资源文件信息。
通过Locale类的对象来指定区域,随后利用ResoourceBundle类加载资源。
- 定义中文资源文件:
Messages_zh_CN.properties
,内容:info = 欢迎访问! - 定义英文资源文件:
Messages_en_US.properties
,内容:info = Welcome!
编写代码如下:
package demo;
import java.util.Locale;
import java.util.ResourceBundle;
class MessageUtils{
public static final int CHINA = 1;
public static final int USA = 2;
private static final String KEY = "info";
private static final String BASENAME = "message.messages";
public String getMessage(int num) {
Locale loc = this.getLocale(num);
if (loc == null) {
return "Nothing";
}else {
return ResourceBundle.getBundle(BASENAME,loc).getString(KEY);
}
}
private Locale getLocale(int num) {
switch(num) {
case CHINA:
return new Locale("zh","CN");
case USA:
return new Locale("en","US");
default:
return null;
}
}
}
public class International {
public static void main(String[] args) {
if (args.length != 1) {// 没有得到参数
System.out.println("程序执行错误,没有输入初始化参数,正确格式为 java javaAPIDemo 选择项");
System.exit(1);// 系统退出
}
int choose = Integer.parseInt(args[0]);
System.out.println(new MessageUtils().getMessage(choose));
}
}