其实ASP.NET已经集成对国际化和本地化的支持,但前些日子我正好在研究CS。所以没有采用微软内置的多语言支持方案,而是采用CS2.1项目的多语言支持方案为蓝本进行改写的。
此方案主要由ASP.NET多语言支持组件和站点工程交互来实现多语言支持的.
一.组件工程:
由ResourceManager对象负责资源(文本)读取的相关操作,由Ryu666Cache对象负责缓存资源文件数据(添加了缓存依赖).
二.站点工程:
ASP.NET多语言支持组件主要有两职责:其一,在站点目录下的Languages目录下提供所有语言版本的资源文件(XML).其二,在Web.Config文件中appSettings节中提供站点的默认语言版本. 使用说明:
根据上述说明得知,其实运用此模块相当简单,针对以下几个方面说明:
1.资源读取:
在需要读取资源文本的地方调用ResourceManager.GetString("XXXX"),XXXX为资源文件中的resource元素的name属性.特别提醒:不一定在站点工程中读取资源,如果使用自定义控件时,本组件功效会更显著.
2.资源文件提供:
在站点工程中建立Languages目录,然后在其中的languages.xml声明所有支持的语言版本.然后建立以相应语言代码为名字的子目录,在其中再以自应的格式建立Resources.xml资源文件.
3.设置默认站点语言:
在Web.config文件的appSettings节中声明.其值需要对应语言目录下languages.xml所声明的语言代码.
4.用户个性化语言选择:
在需要切换用户语言的地方设置Session["userLanguage"]值便可.设置默认站点语言类似,所设的值需要在语言声明文件中被定义.
为演示方便现版本采用Session存放用户定制的语言版本,若用于产品化时建议结合ASP.NET 2.0的Profile管理用户的个性化语言版本. 使用这个ASP.NET多语言支持组件,可以方便的在ASP.NET程序中进行多语言国际化支持。