Struts1_06_struts国际化

一、国际化:使一套软件可以适用多国语言。
    本地化:针对不国语言,开发不套软件的多个语言版本。


二、Java对国际化的支持:内核采用的是unicode2.1。用来支持国际化的核心类主要有:
  1. java.util.Locale:用来代表不同语言/区域的对象。
      new Locale(String languageCode, String countryCode);
     例:new Locale("zh", "CN");  new Locale("zh", "TW");
  2. java.util.ResourceBundle: 根据Locale来绑定相应的资源包.绑定成功后就可以从本Locale对应的资源包中取消息了。


     资源包对应的文件就是一个属性文件,key=value.命名:
     基本名_语言代码_地区代码.properties
     message_zh_CN.properties 简体中文区域的属性文件,要用native2ascii.exe进行编码
     message_en.properties    使用英文的区域的属性文件
     message.properties       默认的属性文件


  3. java.text.MessageFormat 用于对指定的消息模式字符串进行格式化(用值来替换消息模式字符串中的点位符)。


三、struts国际化的原理:
  它就是在java对国际化支持的基础上的一些封装。
  struts框架在第一次接收到客户的请求时,就会从http请求头取获取首选语言项来创建一个Locale实例,然后把它存放在session范围中。以后要显示国际化消息时,就用这个Locale实例来绑定资源包。
  1. 显示资源包中的硬编码信息:在页面中用标签:<bean:message key="消息key"/>
  2. 显示提示消息或错误信息:创建消息。传递消息。取出消息。
  3. 显示资源包中的动态消息。
  4. 根据用户的选择来确定要显示的语言界面。
      根据用户选择构造相应的Locale实例,然后存放到session中。session.setAttribute(Globals.LOCALE_KEY, locale);

你可能感兴趣的:(java,bean,struts,String,session,语言)