如何在 EPiServer 10 中以编程方式“翻译”页面

Inx*_*x51 2 c# asp.net episerver content-management-system

我目前正在从代码创建一个新页面,用作我也从代码创建的站点定义的起始页......但是......即使我发布了新创建的起始页,我总是在 CMS UI 中得到以下消息:

“此内容是英文的。在 svenska 中不存在。您现在要翻译吗?”

如何以编程方式“翻译”页面,然后也发布它?我在这里或在谷歌搜索时找不到与此相关的任何内容。

Eri*_*itz 6

您需要使用CreateLanguageBranchIContentRepository 中的可用内容。

在我下面的示例中,瑞典语是网站上的默认语言

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);
Run Code Online (Sandbox Code Playgroud)