当ASP.NET撞上JSF之应用程序的国际化 | |||||
|---|---|---|---|---|---|
| http://www.sina.com.cn 2006年06月07日 09:06 天极yesky | |||||
|
作者:朱先忠编译 国际化,是指在你的应用程序中支持多种语言和文化。这包括提供本地化的文本消息和格式(例如日期),以便在世界不同地方的用户能够以一种他们理解的格式和语言来观看你的web页面。随着全球web的不断增长,这种类型的功能也变得日益重要。我们将快速地看一下每个框架如何允许你外在化页面文本(例如域标签)以提供不同的本地化支持。 支持不同的本地化的JSF应用程序与其它J2EE应用程序实现方式差不多使用一样的实现方式-通过把本地文本数据存储到一个资源包属性文件中。你将对每一种本地化支持提供一个属性文件(每一种本地化以一个语言代码和一个国家代码(例如en-US加以标志)。切换显示语言其实是一个重定向到另外一个properties文件的问题。在前一个ASP.NET发行版本中,要在一个ASP.NET应用程序中支持不同的本地化相当麻烦,然而,在ASP.NET 2.0中在这一方面有了很大的改进。例如,在ASP.NET 2.0中,当在不同语言之间切换时不需要重新编译。
通过引用一个资源包,你可以使用一个到这个键的引用来代替在JSF标注中的文本。这里有一个例子:
ASP.NET为不同的本地化提供资源文件支持。这些资源文件都有一个扩展名.resx。ASP.NET 2.0中引入了资源表达式-你可以把它们放到ASP.NET标注中。这些表达式看上去类似于ASP.NET数据绑定表达式。注意,开发者可以一起指定一个应用程序的本地和全局资源。在这个例子中,我建立了一个本地资源文件以相应于新的预订页面。 本地资源需要放置在一个文件夹"App_LocalResources"下。这个文件夹下的每一个文件都应该具有类似于"{aspx page name}].aspx.resx"的名字。我创建了一个文件Reservations.aspx.resx。在这个文件中,我为"Reservation Team:"添加了一个入口-就象我在JSF应用程序所实现的那样。为使页面能够存取这些资源并且在运行时刻能够给标签赋予相同的文本,你可以添加下面的表达式:
如果你还没有开发过一个实现国际化要求的应用程序,那么你将来很可能会做这样的工作。不过,无论是使用JSF还是使用ASP.NET都会轻松地实现这种任务。 |



