20170705 Java常用类:Java程序国际化

参考文献:《Java疯狂讲义》(第三版)

国际化与格式化

Java国际化的思路:

Java程序国际化的主要通过如下三个类完成:

1、java.util.ResourceBundle:用于加载国家、语言资源包;

2、java.util.Locale:用于封装特定的国家/区域、语言环境;

3、java.text.MessageFormat:用于格式化带占位符的字符串;

为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容是很

多key-value对,其中key是程序使用的部份,而value则是程序界面的显示字符串。

完成程序国际化:

例子代码:

import java.util.*;

public class RawHello{

public static void main(String[] args){

//取得系统默认的国家/语言环境

Locale myLocale=Locale.getDefault

(Locale.Category.FORMAT);

ResourceBundle bundle=ResourceBundle.getBundle

("mess",myLocale);

//打印从资源文件中取得消息

System.out.println(bundle.getString("hello"));

}

}

mess_en_US.properties文件如下:

#资源文件的内容是key-value对

hello=Welcome you!

mess.properties文件如下:

#资源文件的内容是key-value对

hello=你好!

对mess.properties文件执行

native2ascii 源资源文件 目的资源文件操作

生成一个程序需要的资源文件

注:Java是区分大小写的编程语言,我之前输入的是Hello字符串,运行会发生异常;

知识点:Java程序国际化的关键类是ResourceBundle,它有一个静态方法:

getBundle()String baseName,Locale locale),该方法根据Locale加载资源

文件,Locale封装了一个国家、语言。

例子:

ResourceBundle bundle=ResourceBundle.getBundle("mess",myLocale);

上面代码会加载baseName为"mess"的系列系统资源文件之一,对于简体中文的

Locale,则加载mess_zh_CN.properties文件

一旦加载了该文件,该资源文件内容就是多个key-value对,程序就根据key来获取

指定的信息,例如获取了key为hello的信息,该消息是"你好"。

Java程序国际化的关键类是ResourceBundle和Locale,ResourceBundle根据不同

的Locale加载语言资源文件,再根据指定的key取得已加载语言资源文件中的字符串。

你可能感兴趣的:(20170705 Java常用类:Java程序国际化)