FlowMan®多语言工具 For SharePoint2010 的 技术实现

  关于Sharepoint 的多语言,微软是这样描述的:网站所有者和网站集管理员可使用语言包,以多种语言创建 SharePoint 网站和网站集,而无需单独安装 Microsoft SharePoint Server 2010。您可以在 Web 服务器上安装包含特定语言网站模板的语言包。当管理员基于特定语言网站模板创建网站或网站集时,将用网站模板的语言显示网站或网站集上出现的文本。语言包通常用于跨国部署(其中单个服务器场支持位于不同位置的人员)或必须以一种或多种语言复制网站和网页的情况。

   Sharepoint语言包只是包含系统默认的字段,我们要对自定义创建的列表,自定义创建的栏字段,及导航栏字段等实现多语言,就要通过自己写代码来实现了。

  下面还是分三部分来介绍吧,一部分是先安装Sharepoint多语言包,第二部分是介绍通过代码来实现站点标题,列表,字段,导航等的多语言的原理,第三部分最终效果。

 

一、Sharepoint多语言包

1、首先下载Sharepoint 语言包,下载地址:

http://www.microsoft.com/download/en/details.aspx?id=3411

 

2、点击下载好的语言包安装

 

FlowMan®多语言工具 For SharePoint2010 的 技术实现

FlowMan®多语言工具 For SharePoint2010 的 技术实现

 

 

3、进入[网站设置]-[网站管理]-[语言设置],勾选刚才安装的语言包语言,就会在帐号下拉菜单里多了选择显示语言的菜单,如下图操作:

 

 

FlowMan®多语言工具 For SharePoint2010 的 技术实现

 

 

FlowMan®多语言工具 For SharePoint2010 的 技术实现

 

FlowMan®多语言工具 For SharePoint2010 的 技术实现

 

二、Sharepoint自定义创建的列表,自定义创建的栏字段,及导航栏字段等的多语言代码实现。

 

    SharePoint Server 2010 提供了以下三种可用于修改某些应用程序内容(如列表或库标题和说明)的方法:使用用户界面、导出和导入网站的翻译以及使用 Microsoft.SharePoint 命名空间中的 SPUserResource 类,下面我们就是通过SPUserResource 类来修改网站多语言的标题,列表多语言标题,栏字段多语言的显示名称等。

 

1、 获取网站集所安装的语言对象集
var langs = SPRegionalSettings.GlobalInstalledLanguages;

通过循环这对象集,我们可以得每种语言的LCID,及显示名称。得到对应语言的LCID后,我们通过LCID,可以取到对应语言的CultureInfo类。CultureInfo 类保存区域性特定的信息,如关联的语言、子语言、国家/地区、日历和区域性约定等。通过这类作为参数,可以得到站点标题对应语言的显示名称,对应列语言的显示名称,栏字段语言的显示名称等。

CultureInfo enUSname = new CultureInfo(langs[i].LCID); 

string langdisplayname = enUSname.DisplayName;  //语言的显示名称,也就是帐号下拉菜单 语言选择的显示名称

 

2、 先取到web对象,通过CultureInfo实例类 enUSname作为参数,可以得到网站标题对应语言的显示名称。

string  webTitleResource = web.TitleResource.GetValueForUICulture(enUSname);

 

3、 通过CultureInfo实例类 enUSname作为参数,更新网站名称对应语言的显示名称。

web.TitleResource.SetValueForUICulture(enUSname,”对应语言网站名称”);

web.Update(); //提交web对象更新的信息。

 

4、 先取到列表对象splist,获取splist列表名称多语言。

splist.TitleResource. GetValueForUICulture (enUSname);

 

5、 更新列表名称多语言。

splist.TitleResource.SetValueForUICulture(enUSname,”对应语言列表名称”);

splist.Update();//提交更新。

 

6、 先取到列表的某个字段对象spfield,然后获取列表字段spfield对应语言显示名称。

spfield.TitleResource.GetValueForUICulture(enUSname);

 

7、 更新列表spfield字段对应语言的显示名称。

spfield.TitleResource.SetValueForUICulture(enUSname,”对应语言列表字段名称”);

spfield.Update();

 

同理导航的多语言也这样实现。

 

三、最终的多语言工具效果如下

 

 FlowMan®多语言工具 For SharePoint2010 的 技术实现

 

FlowMan®多语言工具 For SharePoint2010 的 技术实现

 

FlowMan®多语言工具 For SharePoint2010 的 技术实现

 具体工具的安装使用可以点击FlowMan®多语言工具 For SharePoint2010

你可能感兴趣的:(SharePoint)