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 自定義Modern UI表單UI
- SharePoint Online 為Modern Page新增指令碼指令碼
- SharePoint Online 認證Net客戶端物件客戶端物件
- SharePoint Online 觸發 Outlook 郵件內審批
- SharePoint Online 站點模板中許可權的設定
- SharePoint Online共享連結的引數是做什麼的?
- Veritas Backup Exec™ 21.3 Multilingual (Windows)Windows
- Perceptron, Support Vector Machine and Dual Optimization Problem (2)Mac
- 《Fluid Engine Development》 學習筆記2-基礎UIdev筆記
- game development -- flowGAMdev
- Development Studio 2021,dev
- Web Development Job in 4Webdev
- SharePoint詞彙表
- 全新的SharePoint 2019
- 小米 Online Judge 19年2月常規賽題解
- Support Vector MachinesMac
- Announcing MSTest Framework support for .NET Core RC2 / ASP.NET Core RC2[譯]FrameworkASP.NET
- ABC 322 E Product Developmentdev
- SAP EPD - Enterprise Product Developmentdev
- Apache JMeter 5.4.1 Build DevelopmentApacheJMeterUIdev
- TGDC | Evolving AAA Game DevelopmentGAMdev
- Online Book Repository
- create index .. onlineIndex
- does not support SSL connections
- 001.POST Not Support
- iOS Technical Support For AlliOS
- DBMS_SUPPORT(zt)
- langchain multi modal supportLangChain
- webpack 開發模式管理 DevelopmentWeb模式dev
- Python Geospatial Development reading note(1)Pythondev
- SEHS4517 Web Application DevelopmentWebAPPdev
- IEMS5731 Software Design and Developmentdev
- SharePoint 2019 圖文安裝教程
- sharepoint 2013 網站集解鎖網站
- Sharepoint安裝SSL證書?
- SharePoint 2016 圖文安裝教程
- MySQL 8.0 Reference Manual(讀書筆記82節-- InnoDB and Online DDL (2))MySql筆記
- P6475 [NOI Online #2 入門組] 建設城市 題解
- Exchange Online Mailbox RestorationAIREST