最近,经常有朋友问ASP.NET如何实现国际化(多语言)支持方面的问题。前段时间我正好做过这样的一个组件,现本着“人人为我,我为人人”共享精神,发布于此。
\n
其实ASP.NET已经集成对国际化和本地化的支持,但前些日子我正好在研究CS。所以没有采用微软内置的多语言支持方案,而是采用CS2.1项目的多语言支持方案为蓝本进行改写的。
\n
此方案主要由多语言支持组件和站点工程交互来实现多语言支持的.
\n
一.组件工程:
\n
由ResourceManager对象负责资源(文本)读取的相关操作,由Ryu666Cache对象负责缓存资源文件数据(添加了缓存依赖).
\n
二.站点工程:
\n
主要有两职责:其一,在站点目录下的Languages目录下提供所有语言版本的资源文件(XML).其二,在Web.Config文件中appSettings节中提供站点的默认语言版本.
使用说明:
\n
根据上述说明得知,其实运用此模块相当简单,针对以下几个方面说明:
\n
1.资源读取:
\n
在需要读取资源文本的地方调用ResourceManager.GetString(“XXXX”),XXXX为资源文件中的resource元素的name属性.特别提醒:不一定在站点工程中读取资源,如果使用自定义控件时,本组件功效会更显著.
\n
2.资源文件提供:
\n
在站点工程中建立Languages目录,然后在其中的languages.xml声明所有支持的语言版本.然后建立以相应语言代码为名字的子目录,在其中再以自应的格式建立Resources.xml资源文件.
\n
3.设置默认站点语言:
\n
在Web.config文件的appSettings节中声明.其值需要对应语言目录下languages.xml所声明的语言代码.
\n
4.用户个性化语言选择:
\n
在需要切换用户语言的地方设置Session["userLanguage"]值便可.设置默认站点语言类似,所设的值需要在语言声明文件中被定义.
\n
为演示方便现版本采用Session存放用户定制的语言版本,若用于产品化时建议结合ASP.NET 2.0的Profile管理用户的个性化语言版本.
\n
因该组件不是产品,功能也不能算是完备,只作为共享用途.各位可以在此基础上继续进行开发,也欢迎大家留言交流http://Ryu666.cnblogs.com
下载链接:http://www.cnblogs.com/Files/Ryu666/多语言支持.rar
\n
来源:阿良.NET