JBoss Seam从头学到脚之4---如何支持国际化设置

“如何支持国际化设置”这个标题不知道合适不合适,姑且这么叫吧。

好多网站都提供了语言的选择,如google,觉得比较人性化,就在seam中寻找了一下相关课题,学习了一下。

具体实现方法如下(使用的工程是JBoss Seam从头学到脚之2---创建工程中的helloworld工程):

1:把messages_en.properties文件复制一下,把复制的副本改个名字叫messages_zh_CN.properties,这是为了实现中文,这个文件在helloworld/src下面。

2:在messages_zh_CN.properties文件里面添加一个property,Name是ChangeLanguage,对应的value是“多国语言设置”;

3:在messages_en.properties文件里面添加一个property,Name是ChangeLanguage,对应的value是“Change  Language”;

4:修改faces-config.xml文件,修改后的内容如下

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    version="1.2">
	<application>
		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
		<locale-config>
			<default-locale>en</default-locale>
			<supported-locale>en</supported-locale>
			<supported-locale>zh_CN</supported-locale>
		</locale-config>
	</application>

</faces-config>

5:我把这个功能加到login.xhtml文件中,在这个文件的form里,追加如下内容:

……
……
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
……
……
<f:loadBundle basename="messages" var="msgs"/>		
<h:selectOneMenu value="#{localeSelector.localeString}">
      <f:selectItems value="#{localeSelector.supportedLocales}"/>
</h:selectOneMenu>
<h:commandButton action="#{localeSelector.select}" value="#{msgs['ChangeLanguage']}"/>
……
……

---update on 2009/01/14
"#{msgs['ChangeLanguage' ]}"中的msgs是前面定义好的变量,
这里也可以不用事先定义,
而直接用默认的messages也可以,即"#{messages['ChangeLanguage']}"。

6:然后启动jboss server,访问地址是http://localhost:8080/helloworld/login.seam,具体图示如下:



 


END

你可能感兴趣的:(jboss,javaee,JSF,sun,seam)