软件实现国际化,需具备哪些特征:
对于程序中固定使用的文本元素,例如菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,需要根据来访者的地区和国家,选择不同语言的文本为之服务。
对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示。
ResourceBundle类提供了一个静态方法getBundle,该方法用于装载资源文件,并创建ResourceBundle实例:
Locale currentLocale = Locale.getDefault();
ResourceBundle myResources =
ResourceBundle.getBundle(basename, currentLocale);
basename为资源包基名(且必须为完整路径)。
如果与该locale对象匹配的资源包子类找不到。一般情况下,则选用默认资源文件予以显示。
数值,货币,时间,日期等数据由于可能在程序运行时动态产生,所以无法像文字一样简单地将它们从应用程序中分离出来,而是需要特殊处理。Java 中提供了解决这些问题的 API 类(位于 java.util 包和 java.text 包中)
日期的显示:
package com.hbsi.domain;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date d=new Date();
DateFormat df=DateFormat.getDateInstance(DateFormat.FULL,Locale.CHINA);
String result=df.format(d);
System.out.println(result);
df=DateFormat.getDateInstance(DateFormat.FULL,Locale.ENGLISH);
result=df.format(d);
System.out.println(result);
df=DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.LONG,Locale.ENGLISH);
result=df.format(d);
System.out.println(result);
}
}