2018-10-01 java国际化

本文中的内容是对疯狂java讲义相关内容的总结;

国际化意在于支持不同国家地区的语言,如中文,英文等。java的国际化主要涉及三个类:

(1) java.util.ResourceBoundle,用于加载国家、语言资源包;

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

(3) java.text.MessageFormat:用于格式化占位符的字符串

要实现国家化,首先要解决的问题是不同的语言从哪里来?java使用相应的资源文件来实现。资源文件中是一个个key=value的对,类似于map;英文环境的value为可以是英文,但中文需要时unicode编码;可以通过java提供的native2ascii工具来获得;资源文件的命名也有要求,有如下三种形式:

(1) baseName_language_country.properties;

(2) baseName_language.properties;

(3) baseName.properties;

baseName是资源文件的基本名,可命名为任何名字,但language和country必须是java所支持的语言和国家名,可以通过Locale.getAvailableLocale()来获取,返回数组类型的元素;

资源文件简历好后,使用方法如下:

(1) Locale locale = Locale.getDefault(); //获取系统默认语言环境

(2) ResourceBoundle boundle = ResourceBoundle.getBoundle("baseName",locale ); //获取相应环境的资源文件

(3) boundle.getString("name");

如果要想国际化的信息中传入参数,可使用MessageFormat方法来实现;此时,资源文件中需要使用占位符{0},{1},代表传入的第几个参数;使用方式:MessageFormat(key,param1,param2,...)

使用NumberFormat格式化数字,使用DateFormat格式化日期时间;

你可能感兴趣的:(2018-10-01 java国际化)