`
勤业思行
  • 浏览: 82113 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

程序的国际化

    博客分类:
  • j2se
阅读更多

程序的国际化:当一个程序或Web应用需要面对多个国家或区域的用户时,由于不同国家或地区的用户的文化习惯不同,具体表现在使用的文字、货币、时间、数字等的表现格式不同。例中文和English,¥和$.此时就不可避免的需要实现程序的国际化来满足用户的需求。我们也可以把国际化简称为I18N,这是因为国家化单词internationalization的首字母"i"和尾字母"n"之间有18个字母。所以,国际化是一个跨地区或国家的企业级应用必不可少的功能。Java提供了非常好的国际化支持。

 一、Java(J2SE)的国际化: 在Java中,Java是第一个设计成为全面支持国家化的语言,从一开始,Java就具有进行有效国际化的一个必须的重要特性:使用Unicode来处理所有的字符串。关于Java更多国际化的信息可以查看网站:http://www.joconner.com/javai18n和Sun的官方网站:http://java.sun.com/javase/technologies/core/basic/intl .

国际化主要涉及信息有:数字格式、日期和时间、排序、文本文件和字符集、本地语言和资源文件。

   在Java语言中专门提供了用于解决国际化问题的API,这些API类主要位于java.text和java.util包中。 

1、Locale类:一个Locale实例对象代表了一个特定的地理、政治或文化上的区域。

Locale的构造方法:

java.util.Locale(java.lang.String)

java.util.Locale(java.lang.String, java.lang.String)

 java.util.Locale(java.lang.String, java.lang.String, java.lang.String)

 其中第一个String是language,表示有效的ISO语言代码,一般用两个小写字母表示。第二个String表示国家或地区,一般使用两个大写字母表示。第三个string表示特定于供应商和浏览器的代码,WIN表示windows,MAC表示Macintosh,POSIX表示POSIX。

eg: Locale enLocale=new Locale("en");

        Locale enLocale=new Locale("es", "ES","Traditional_WIN")

Locale常量:虽然可以使用Locale类的构造方法创建Locale实例对象,但是需要指定语言代码和国家代码作为构造方法的参数,这比较麻烦。这里Locale提供了一些常量,这些常量分别对应了一些提前创建好的表示不同语言和国家地区的Locale实例对象。例,Locale.CHINESE表示一个语言为汉语的Locale实例对象,而Locale.US表示一个国家或地区为美国的Locale实例对象。具体参见JDK文档。

public static Locale getDefault()返回操作系统的当前Locale实例对象。

public static Locale[] getAvailableLocales():返回当前操作系统所有已安装的语言环境数组。

还有相应的getCountry()、getLanguage()、getVariant()、getDisplayCountry等。

2、Format类:Format有一个抽象类。他的几个子类:NumberFormat、MessageFormat、DateFormat分别处理数字、字符串、日期的格式化问题。具体看jdk文档。

3、ResourceBundle类:用于描述一个资源包。资源文件的获取来实现国际化信息显示。同时,当涉及中文字符时,要求资源文件中的中文字符转换为Unicode编码。可用JDK的native2ascii应用程序来进行编码。同时,也可以一次性的转换整个资源文件。调用命令:
  native2ascii -encoding gb2312 temp.properties MyResources_zh.properties

 运行将在当前目录下生成temp.properties资源文件的Unicode编码文件MyResource_zh.properties。当出现占位符时可用MessageFormat类来处理。

二、Web应用的国家化

实现Web应用的国际化有两种方式:

1、针对不同语言和地区的用户开发不同的JSP网页版本,当用户请求资源时,根据请求消息中国携带的本地信息为用户提供合适的版本。

2、针对本地环境敏感的资源数据(如错误信息提示、菜单、按钮上的标题等文字信息),从网页中分离出来。放在.properties属性资源文件中。对于应用中的数字、货币、日期和时间等本地敏感的数据,可以通过占位符的方式设置它们的格式类型和格式模式。

针对上面两种方法:如果整个Web应用中有大量的数据需要根据用户的本地信息进行显示,则采用第一种方式;否则,采用第二种方式。也可以将两种方式结合使用。

 

 

 

 

 

下面以一个登录请求为例的操作流程:

 

 

 附件中是一个简单的I18nJava 项目的jar包,项目的开发工具Eclipse。

  • 大小: 26.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics