日期:2014-05-16 浏览次数:20372 次
?????? 在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>