国际化,是指在你的应用程序中支持多种语言和文化。这包括提供本地化的文本消息和格式(例如日期),以便在世界不同地方的用户能够以一种他们理解的格式和语言来观看你的web页面。随着全球web的不断增长,这种类型的功能也变得日益重要。我们将快速地看一下每个框架如何允许你外在化页面文本(例如域标签)以提供不同的本地化支持。
支持不同的本地化的JSF应用程序与其它J2EE应用程序实现方式差不多使用一样的实现方式-通过把本地文本数据存储到一个资源包属性文件中。你将对每一种本地化支持提供一个属性文件(每一种本地化以一个语言代码和一个国家代码(例如en-US加以标志)。切换显示语言其实是一个重定向到另外一个properties文件的问题。在前一个ASP.NET发行版本中,要在一个ASP.NET应用程序中支持不同的本地化相当麻烦,然而,在ASP.NET 2.0中在这一方面有了很大的改进。例如,在ASP.NET 2.0中,当在不同语言之间切换时不需要重新编译。
为了使JSF应用程序支持不同本地化功能,我把一个WebReservations.properties文件添加到应用程序并实现了支持en-US的本地化。预订页面的标题为”Make a Reservation for Conference Room”。我简单地在这个资源绑定属性文件中添加了一个键/值对:
#示例ResourceBundle属性文件
ReserveRoomTeamLabel=Reservation Team:
我可以为同一个组件创建任何数量的本地化特定的消息。然后,我需要告诉应用程序如何使用这个文件-通过把下列语句添加到faces-config.xml文件中:
\n
<message-bundle>WebReservations.properties</message-bundle>
<locale-config>
<default-locale>en</default-locale>
<!–Add other locales here.–>
</locale-config>\n
<locale-config>
<default-locale>en</default-locale>
<!–Add other locales here.–>
</locale-config>\n