Java常用类库----国际化程序
国际化程序
国际化的操作就是指一个程序可以同时适应多门语言。(程序代码没有任何变化,只是其显示文字差异)
程序根据不同的语言环境找到不同的资源文件,之后从资源文件中取出内容,资源文件中的内容都是以key -> value的形式保存的,所以在读取的时候通过其key找到对应的value即可。
Locale 类
Locale表示的是本地,实际上使用的是一个ISO编码的封装类。对于各个国家来说都存在一个唯一的编码,那么这种编码就称为ISO编码,使用Locale可以指定好一个具体的国家编码。
例如:中国的编码:zh-CN
英语-美国的编码:en-US
法语的编码:fr-FR
ResourceBundle 类
Message.properties:
info = HELLO
其中info是程序中需要的内容,而Hello是此info所指向的具体内容。
从资源文件中读取数据:
import java.util.ResourceBundle ; public class InterDemo01{ public static void main(String args[]){ ResourceBundle rb = ResourceBundle.getBundle("Message") ; // 找到资源文件,不用编写后缀 System.out.println("内容:" + rb.getString("info")) ; // 从资源文件中取得内容 } };
JAVA国际化程序实现
import java.util.ResourceBundle ; import java.util.Locale ; public class InterDemo02{ public static void main(String args[]){ Locale zhLoc = new Locale("zh","CN") ; // 表示中国地区 Locale enLoc = new Locale("en","US") ; // 表示美国地区 Locale frLoc = new Locale("fr","FR") ; // 表示法国地区 // 找到中文的属性文件,需要指定中文的Locale对象 ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhLoc) ; // 找到英文的属性文件,需要指定英文的Locale对象 ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc) ; // 找到法文的属性文件,需要指定法文的Locale对象 ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc) ; // 依次读取各个属性文件的内容,通过键值读取,此时的键值名称统一为info System.out.println("中文:" + zhrb.getString("info")) ; System.out.println("英语:" + enrb.getString("info")) ; System.out.println("法语:" + frrb.getString("info")) ; } };

浙公网安备 33010602011771号