日期:2014-05-16  浏览次数:20372 次

JSF国际化配置

?????? 在JSF配置中的如果使用国际化,其实和其他的框架的国际化一样,JSF国际化(Internnationalization)讯息处理是基于Java对国际化的支援,您可以在一个讯息资源档中统一管理讯息资源,资源档的名称是.properties,而内容是名称与值的配对。

?????? 由于讯息资源档必须是ISO-8859-1编码,所以对于非西方语系的处理,必须先将之转换为Java Unicode Escape格式。然后使用JDK的工具程式native2ascii来转换,例如:

?native2ascii -encoding Big5 messages_zh_TW.txt messages_zh_TW.properties

?

?

在JSF中的faces-servlet.xml配置中信息:

    <!-- 
         国际化配置
        在<local-config>一定有一个<default-locale>,而<supported-locale>可以有好几个,这告诉JSF您的应用程式支援哪些语系。
     -->
     
       <!-- 
      <f:view>可以设定locale属性,直接指定所要使用的语系

	    加载国家化的方法
	    JSF会根据<f:loadBundle>的basename属性加上<f:view>的locale属性来决定要使用哪一个讯息资源档
	 -->
	<application>
      <locale-config>
        <default-locale>en_US</default-locale>
        <supported-locale>zh_CN</supported-locale>
      </locale-config>
      <message-bundle>
      	messages
      </message-bundle>
    </application>

?

?

?

使用<f:loadBundle>标籤来指定载入讯息资源。

	<f:view locale="en_US">
	<f:loadBundle basename="messages" var="msgs"/>

?

使用如下:

   <h:outputLabel value="#{msgs.math_num0}"></h:outputLabel>
     <h:inputText id="num0" value="#{mathService.num0}" >
     </h:inputText>
     <h:message for="num0" ></h:message>

?