SharePoint中,单个站点实现多语言一直是一个难点,没有见过什么解决方案,最近稍微有点时间做个这么个东西。
实现原理:
利用HttpModule动态切换当前线程语言。
利用HttpModule拦截所有Html输出,利用正则表达式进行替换,在站点中所有需要切换语言的地方,都采用 $$ 进行标识,然后在一个网站列表中配置语言翻译,每个栏作为一种语言。
利用这个项目的支持,可以实现网站动态内容(列表名,栏名,导航菜单)和静态内容的语言切换。
代码已经全部迁入到codeplex上,需要的朋友可以去下载:
http://spml.codeplex.com/SourceControl/ListDownloadableCommits.aspx
若只是试用功能,这儿可以下载dll和文档:
http://spml.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35117
配置方法见Readme文件。
--------------------
看一下效果:
这是一个中文的站点:
切换成英文:
翻译配置:
去掉用户翻译的MultiLanSupportModule后,看看站点原貌:‘
除了采用站点右上角的语言切换控件,还可以通过IE设置切换: