用 Java 解决国际化问题
由于 Java 语言具有平台无关、可移植性好等优点,并且提供了强大的类库,所以 Java 语言可以辅
助我们解决上述问题。Java 语言本身采用双字节字符编码,采用大汉字字符集,这就为解决国际
化问题提供了很多方便。从设计角度来说,只要把程序中与语言和文化有关的部分分离出来,加
上特殊处理,就可以部分解决国际化问题。在界面风格的定制方面,我们把可以参数化的元素,
如字体、颜色等,存储在数据库里,以便为用户提供友好的界面;如果某些部分包含无法参数化
的元素,那么我们可能不得不分别设计,通过有针对性的编码来解决具体问题。
Java 类包
在用 Java 解决国际化问题的过程中,可能利用到的主要的类都是由 java.util 包提供的。该类包中
相关的类有 Locale、 ResourceBundle、ListResourceBundle、PropertyResourceBundle 等,其继承关
系如下图所示。
其中各类提供的主要功能如下:
Locale:该类包含对主要地理区域的地域化特征的封装。其特定对象表示某一特定的地理、政治
或文化区域。通过设定 Locale,我们可以为特定的国家或地区提供符合当地文化习惯的字体、符
号、图标和表达格式。例如,我们可以通过获得特定 Locale 下的 Calendar 类的实例,显示符合特
定表达格式的日期。
ResourceBundle:该类是一个抽象类,需要通过静态方法 ResourceBundle.getBundle()指定具体实现
类或属性文件的基本名称。基本名称会协同指定的或默认的 Locale 类,决定具体调用的类或属性
如果应用系统是面向多种语言的,编程时就不得不设法解决国际化问题,包括操作界面的风格问
题、提示和帮助语言的版本问题、界面定制个性化问题等。