SharePoint online Multilingual support - Development(2)
博客地址:http://blog.csdn.net/FoxDave
上一节讲了如何通过Code的方式设置Site和List级别的国际化,本节介绍一下如何设置Content type和Site column级别的国际化。废话不多说了,还是以代码的方式带大家go through这个过程。
Content type和Site column级别的国际化
跟之前一样,为了测试咱们先创建专用的Site column和Content type,需要把Site column添加到Content type,所以先创建一个Site column。
创建Site column的代码如下所示:
private static void CreateSiteColumn(ClientContext cc, Web web)
{
// Add site column to the content type if it's not there...
FieldCollection fields = web.Fields;
cc.Load(fields);
cc.ExecuteQuery(); foreach (var item in fields)
{
if (item.InternalName == "ContosoString")
return;
} string FieldAsXML = @"<Field ID='{4F34B2ED-9CFF-4900-B091-4C0033F89944}'
Name='ContosoString'
DisplayName='Contoso String'
Type='Text'
Hidden='False'
Group='Contoso Site Columns'
Description='Contoso Text Field' />";
Field fld = fields.AddFieldAsXml(FieldAsXML, true, AddFieldOptions.DefaultValue);
cc.Load(fields);
cc.Load(fld);
cc.ExecuteQuery();
}
上面的代码创建了一个名为ContosoString的Site column,并指定ID为4F34B2ED-9CFF-4900-B091-4C0033F89944。接下来咱们创建Content type,代码如下:
private static void CreateContentTypeIfDoesNotExist(ClientContext cc, Web web)
{
ContentTypeCollection contentTypes = web.ContentTypes;
cc.Load(contentTypes);
cc.ExecuteQuery(); foreach (var item in contentTypes)
{
if (item.StringId == "0x0101009189AB5D3D2647B580F011DA2F356FB2")
return;
} // Create a Content Type Information object
ContentTypeCreationInformation newCt = new ContentTypeCreationInformation();
// Set the name for the content type
newCt.Name = "Contoso Document";
//Inherit from oob document - 0x0101 and assign
newCt.Id = "0x0101009189AB5D3D2647B580F011DA2F356FB2";
// Set content type to be avaialble from specific group
newCt.Group = "Contoso Content Types";
// Create the content type
ContentType myContentType = contentTypes.Add(newCt);
cc.ExecuteQuery();
}
上面的代码创建了名为Consoto Document的Content type,指定了ID为0x0101009189AB5D3D2647B580F011DA2F356FB2。接下来咱们需要将新建的Site column添加到新建的Content type中,代码如下:
private static void AddSiteColumnToContentType(ClientContext cc, Web web)
{
ContentTypeCollection contentTypes = web.ContentTypes;
cc.Load(contentTypes);
cc.ExecuteQuery();
ContentType myContentType = contentTypes.GetById("0x0101009189AB5D3D2647B580F011DA2F356FB2");
cc.Load(myContentType);
cc.ExecuteQuery(); FieldCollection fields = web.Fields;
Field fld = fields.GetByInternalNameOrTitle("ContosoString");
cc.Load(fields);
cc.Load(fld);
cc.ExecuteQuery(); FieldLinkCollection refFields = myContentType.FieldLinks;
cc.Load(refFields);
cc.ExecuteQuery(); foreach (var item in refFields)
{
if (item.Name == "ContosoString")
return;
} // ref does nt
FieldLinkCreationInformation link = new FieldLinkCreationInformation();
link.Field = fld;
myContentType.FieldLinks.Add(link);
myContentType.Update(true);
cc.ExecuteQuery();
}
通过以上的代码,咱们用于测试的数据就创建完了,下面的代码就来演示如何设置国际化属性了:
private static void LocalizeContentTypeAndField(ClientContext cc, Web web)
{
ContentTypeCollection contentTypes = web.ContentTypes;
ContentType myContentType = contentTypes.GetById("0x0101009189AB5D3D2647B580F011DA2F356FB2");
cc.Load(contentTypes);
cc.Load(myContentType);
cc.ExecuteQuery();
// Title of the content type
myContentType.NameResource.SetValueForUICulture("en-US",
"Contoso Document");
myContentType.NameResource.SetValueForUICulture("fi-FI",
"Contoso Dokumentti");
myContentType.NameResource.SetValueForUICulture("fr-FR",
"Contoso Document (FR)");
// Description of the content type
myContentType.DescriptionResource.SetValueForUICulture("en-US",
"This is the Contoso Document.");
myContentType.DescriptionResource.SetValueForUICulture("fi-FI",
"Tämä on geneerinen Contoso dokumentti.");
myContentType.DescriptionResource.SetValueForUICulture("fr-FR",
"French Contoso document.");
myContentType.Update(true);
cc.ExecuteQuery(); // Do localization also for the site column
FieldCollection fields = web.Fields;
Field fld = fields.GetByInternalNameOrTitle("ContosoString");
fld.TitleResource.SetValueForUICulture("en-US", "Contoso String");
fld.TitleResource.SetValueForUICulture("fi-FI", "Contoso Teksti");
fld.TitleResource.SetValueForUICulture("fr-FR", "Contoso French String");
// Description entry
fld.DescriptionResource.SetValueForUICulture("en-US",
"Used to store Contoso specific metadata.");
fld.DescriptionResource.SetValueForUICulture("fi-FI",
"Tää on niiku Contoso metadatalle.");
fld.DescriptionResource.SetValueForUICulture("fr-FR",
"French Description Goes here");
fld.UpdateAndPushChanges(true);
cc.ExecuteQuery();
}
跟Site和List级别同理,就不做过多解释了。
原文地址:https://blogs.msdn.microsoft.com/vesku/2014/03/20/office365-multilingual-content-types-site-columns-and-other-site-elements/
SharePoint online Multilingual support - Development(2)的更多相关文章
- SharePoint online Multilingual support - Development(1)
博客地址:http://blog.csdn.net/FoxDave 上一节讲了SharePoint Online网站多语言的实现原理机制,本节主要从编程的角度来谈一下如何进行相关的设置. 下面列出 ...
- SharePoint online Multilingual support - Settings
博客地址:http://blog.csdn.net/FoxDave This post will talk about how to enable sharepoint online site mul ...
- Multi-lingual Support
Multi-lingual Support One problem with dealing with non-Latin characters programmatically is that, f ...
- SharePoint Security and Permission System Overview
转:http://www.sharepointblues.com/2010/09/01/sharepoint-security-and-permission-system-overview/ Shar ...
- 10 Skills Every SharePoint Developer Needs
10 Skills Every SharePoint Developer Needs(原文) This blog post guides you through the essential skill ...
- SharePoint 2013 搜索功能,列表项目不能完全被索引
描述 最近一个站点,需要开启搜索功能,然后创建内容源,开始爬网,发现列表里只有一部分被索引,很多项目没有被索引,甚是奇怪,如下图(其实列表里有80几条项目). 首先爬网账号是系统账号.服务器管理员,所 ...
- Device Channels in SharePoint 2013
[FROM:http://blog.mastykarz.nl/device-channels-sharepoint-2013/] One of the new features of SharePoi ...
- INCOIN Importing Multilingual Items (Doc ID 278126.1)
APPLIES TO: Oracle Inventory Management - Version: 11.5.9 to 11.5.10.CU2 - Release: 11.5 to 11.5 GOA ...
- [IT学习]微软如何做网站内容治理
How Microsoft does SharePoint Governance for their internal platform english sources from:http://www ...
随机推荐
- 纯js无缝滚动
HTML代码 <!--父容器要使用overflow: hidden;--> <div id="imgsList" style="height:150px ...
- vue核心之虚拟DOM
一.前言 虚拟DOM概念随着react的诞生而诞生,由facebook提出,其卓越的性能很快得到广大开发者的认可:继react之后vue2.0也在其核心引入了虚拟DOM的概念,本文将以vue2.0使用 ...
- Django中模型层中ORM的单表操作
ORM概念: MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- Fox And Dinner CodeForces - 510E (最大流)
大意: n只狐狸, 要求分成若干个环, 每个环的狐狸不少于三只, 相邻狐狸年龄和为素数. 狐狸年龄都>=2, 那么素数一定为奇数, 相邻必须是一奇一偶, 也就是一个二分图, 源点向奇数点连容量为 ...
- python获取文件路径、文件名、后缀名的实例
def jwkj_get_filePath_fileName_fileExt(filename): (filepath,tempfilename) = os.path.split(filename); ...
- Oracle PL/SQL语言函数、匿名语句及循环
一.自定义函数 格式: create or replace function 函数名(参数名 参数类型...) return 返回值类型 as xx vachar2(20) ...
- lua中的逻辑运算符
逻辑运算符也是3个,and,or,not,只是不是返回false和true,只有false和nil表示假,其他的都是真 and and使用短路运算,a and b,如果a为假,结果已经定了,返回a假, ...
- Redis 系列之CentOS下Redis的安装
前言 安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的.另外需要注意的是 ...
- button disable and enable
1. disable <button id="buttonId" disabled>......</button> $("#buttonId&qu ...
- python操作文件(增、删、改、查)
内容 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defaults log global mode ...