博客地址:
上一节讲了SharePoint Online网站多语言的实现原理机制,本节主要从编程的角度来谈一下如何进行相关的设置。
下面列出的代码函数方法在命令行中运行即可。至于Context如何获取可以参考我以前的blog。
Site和List级别的国际化
首先咱们先创建一个测试List,如下代码:
private static void CreateCustomList(ClientContext ctx, Web web) { ListCollection listCollection = ctx.Web.Lists; ctx.Load(listCollection, lists => lists.Include(list => list.Title). Where(list => list.Title == "LocalizeMe")); ctx.ExecuteQuery(); // Create the list, if it's not there... if (listCollection.Count == 0) { ListCreationInformation newList = new ListCreationInformation(); newList.Title = "LocalizeMe"; newList.QuickLaunchOption = QuickLaunchOptions.On; newList.TemplateType = (int)ListTemplateType.GenericList; newList.Description = "LocalizeMe sample list"; List list = web.Lists.Add(newList); ctx.ExecuteQuery(); } }
上面的代码很简单,不做过多解释了,就是创建一个名为LocalizeMe的List。
接下来的代码演示了如何设置多语言的属性。
private static void LocalizeSiteAndList(ClientContext cc, Web web) { // Localize site title web.TitleResource.SetValueForUICulture("en-US", "Localize Me"); web.TitleResource.SetValueForUICulture("fi-FI", "Kielikäännä minut"); web.TitleResource.SetValueForUICulture("fr-FR", "Localize Me to French"); // Site description web.DescriptionResource.SetValueForUICulture("en-US", "Localize Me site sample"); web.DescriptionResource.SetValueForUICulture("fi-FI", "Kielikäännetty saitti"); web.DescriptionResource.SetValueForUICulture("fr-FR", "Localize to French in description"); web.Update(); cc.ExecuteQuery(); // Localize custom list which was created previously List list = cc.Web.Lists.GetByTitle("LocalizeMe"); cc.Load(list); cc.ExecuteQuery(); list.TitleResource.SetValueForUICulture("en-US", "Localize Me"); list.TitleResource.SetValueForUICulture("fi-FI", "Kielikäännä minut"); list.TitleResource.SetValueForUICulture("fr-FR", "French text for title"); // Description list.DescriptionResource.SetValueForUICulture("en-US", "This is localization CSOM usage example list."); list.DescriptionResource.SetValueForUICulture("fi-FI", "Tämä esimerkki näyttää miten voit kielikääntää listoja."); list.DescriptionResource.SetValueForUICulture("fr-FR", "I have no idea how to translate this to French."); list.Update(); cc.ExecuteQuery(); }简单说明一下,对于需要国际化的内容,我们需要获取对应的SharePoint Object之后,操作相应的XXResource属性,如上所示,对Site和List的Title和Description进行了国际化。
执行完代码之后,根据当前用户的prefer language,就可以显示不同的语言了。
原文地址: