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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以编程方式“翻译”EPiServer 10中的页面相关的知识,希望对你有一定的参考价值。

我目前正在从代码创建一个新页面,作为我的sitedefinition的起始页面,我也是从code..however创建的..即使我发布了新创建的起始页,我总是在CMS UI中得到以下消息:

“这个内容是英文的。在svenska中不存在。你想现在翻译吗?”

如何从编程方式“翻译”页面然后再发布?我在这里或谷歌搜索时都找不到任何相关内容。

有任何想法吗?

提前致谢!

答案

您需要使用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);

以上是关于如何以编程方式“翻译”EPiServer 10中的页面的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式检索 EPi Server 网站的所有启用语言的列表?

Episerver / CMS和Dojo / Aspect-如何捕获还原到Dojo中的发布事件?

EPiServer 开发

如何以编程方式单击 WPF 中的按钮?

使用 UIPanGestureRecognizer 获取视图的翻译 - 快速 - 以编程方式

以编程方式从10.11中的资产目录中获取颜色?