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")) ;
    }
};
View Code

 

posted @ 2015-04-03 09:24  闲来垂钓  阅读(151)  评论(0)    收藏  举报