如何以编程方式 "translate" EPiServer 10 中的页面
How to programmatically "translate" a page in EPiServer 10
我目前正在从代码创建一个新页面,用作我也从代码创建的站点定义的起始页..然而..即使我发布新创建的起始页,我总是以以下消息结束CMS UI:
"This content is in English. It does not exist in svenska. Would you like to translate it now?"
如何以编程方式 "Translate" 页面,然后再将其发布?我无法在这里或在谷歌搜索时找到与此相关的任何内容。
您需要使用 IContentRepository 中可用的CreateLanguageBranch
。
在我下面的示例中,瑞典语是网站上的默认语言
var parent = ContentReference.RootPage;
IContentRepository contentRepository =
EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IContentRepository>();
StartpagePage startpage = contentRepository.GetDefault<StartpagePage>(parent);
startpage.PageName = "Teststartsida";
startpage.Title = "Teststartsida";
// this will create a startpage in the default language, Swedish in my case,
// use SaveAction.Publish and save the page into a new variable
var createdPage = contentRepository.Save(startpage,
EPiServer.DataAccess.SaveAction.Publish,
AccessLevel.NoAccess);
// invoke CreateLanguageBranch with LanguageSelector
var startpageLanguageBranch =
contentRepository.CreateLanguageBranch<StartpagePage>(createdPage,
new LanguageSelector("en"));
startpageLanguageBranch.PageName = "Start page test";
startpageLanguageBranch.Title = "Start page test";
// this will create a languagebranch in the language stated with the LanguageSelector.
// Use SaveAction.Save
contentRepository.Save(startpageLanguageBranch,
EPiServer.DataAccess.SaveAction.Save,
AccessLevel.NoAccess);
我目前正在从代码创建一个新页面,用作我也从代码创建的站点定义的起始页..然而..即使我发布新创建的起始页,我总是以以下消息结束CMS UI:
"This content is in English. It does not exist in svenska. Would you like to translate it now?"
如何以编程方式 "Translate" 页面,然后再将其发布?我无法在这里或在谷歌搜索时找到与此相关的任何内容。
您需要使用 IContentRepository 中可用的CreateLanguageBranch
。
在我下面的示例中,瑞典语是网站上的默认语言
var parent = ContentReference.RootPage;
IContentRepository contentRepository =
EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IContentRepository>();
StartpagePage startpage = contentRepository.GetDefault<StartpagePage>(parent);
startpage.PageName = "Teststartsida";
startpage.Title = "Teststartsida";
// this will create a startpage in the default language, Swedish in my case,
// use SaveAction.Publish and save the page into a new variable
var createdPage = contentRepository.Save(startpage,
EPiServer.DataAccess.SaveAction.Publish,
AccessLevel.NoAccess);
// invoke CreateLanguageBranch with LanguageSelector
var startpageLanguageBranch =
contentRepository.CreateLanguageBranch<StartpagePage>(createdPage,
new LanguageSelector("en"));
startpageLanguageBranch.PageName = "Start page test";
startpageLanguageBranch.Title = "Start page test";
// this will create a languagebranch in the language stated with the LanguageSelector.
// Use SaveAction.Save
contentRepository.Save(startpageLanguageBranch,
EPiServer.DataAccess.SaveAction.Save,
AccessLevel.NoAccess);