ASP.NET 2.0中的全球化与本地化之本地化
的格式。这个属性需要语言也需要位置(本地化)。
有时,我们需要一种不属于任何语言或本地化的文化,对于任何地区/语言都不变。为此,我们可以使用CultureInfo.InvariantCulture属性。这一属性在内部系统处理期间使用;此时,要求是文化独立的,或者存储不需要被直接显示给终端用户的数据。 UICulture和Culture属性都能够在Web.Config文件的<GLOBALIZATION>属性中进行定义。另外,它们还能够在页面级上被指定。但是,我们不想硬编码这些值而是喜欢动态地设置它们。由上面可知,我们还能够使用Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture属性以编码方式得到/设置这些值。因此,我们将在本应用程序中使用这些属性。 五、本地化切换 现在,回到我们的应用程序中来,我们需要一种方法实现本地化切换。为此,存在两种方法: 1.使用浏览器设置:在IE中,用户可以通过使用"Internet Options->General->Languages"来改变文化。为此,我们需要把Culture和UICulture都设置为auto并且把enableClientBasedCulture设置为true,如下所示: < GLOBALIZATION culture="auto" uiculture="auto" enableClientBasedCulture=""true"" /> 2.用户指定的设置:我们能够向用户提供一个选项以便其在运行时刻指定和改变文化和语言。这是推荐的方法,因为有时浏览器本身可能没有提供用户特定的语言集(例如一个法语旅游者可能在印度上网)。而且,有时经由浏览器修改语言设置将会被阻断。 现在,我们使用第二种推荐的方法,我在MasterPage上部(在一个面板控件内)创建了一个节;此处,我使用了一个具有这些语言选项的下拉列表框以便让用户选择一种特定的本地化表达。 在本示例中,仅为了说明问题,我仅使用了四种语言选项: Hindi,American English,British English和French。 为了实现我的应用程序的全球化,我的目标是:无论用户何时选择一种特定的本地化语言,下列都应该发生: 1.所有内容都应该是本地化的:这意味着,所有字符串和文本应该以选择的语言和本地化显示。 2.每个控件的标题(/内容)也应该以本地语言显示文本。 3.日期和货币格式化应该根据选择的本地化发生。 4.所有显示给用户的消息应该是使用本地的语言。 为了达到以上目的,你首先要确保从代码中取出此内容并把它放在单独的资源文件中,在.NET中这是一些具有.resx扩展名的简单的XML文件。 由于这些内容将因语言不同而有所不同,所以,我们针对每一种文化(语言)各自建立了相应的资源文件。每一个这样的文件中都提供了Name和Value两个域。下面是在两个资源文件中的示例入口;在此,假定我们必须输入一个字符串"Welcome": 1.添加一个新的资源文件并命名它为TestSiteResource.resx,并且使用VS编辑器打开它。在Name域输入"Banner",在Value域输入"Test Website for Localization"。这个资源文件缺省使用的是美式英语。 2.添加另一个资源文件并命名它为"TestSiteResources.fr-FR.resx"。这个文件相应于法语字符串。在Name域中添加"Banner",在Value域中添加"Examinez le site Web pour le comportement de localisation"。 如果你想添加加拿大法语资源,那么,你需要创建另一个资源文件"TestSiteResources.fr-CA.resx"。这个名字的中间部分定义了本地化,并且它应该与通过UICulture属性指定的相同 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |