2017-12-27 3 views
1

Ich erstelle gerade eine neue Seite aus Code, die ich als Startseite für eine Sitedefinition benutze, die ich auch aus Code erstelle..wie auch immer ... auch wenn ich die neu erstellte Startseite veröffentliche Ich immer am Ende mit der folgenden Nachricht in der CMS-Benutzeroberfläche:Programmatisch "übersetzen" einer Seite in EPiServer 10

"Dieser Inhalt ist in Englisch. Es existiert nicht in Svenska. Möchten Sie es jetzt übersetzen?"

Wie kann ich die Seite programmatisch "übersetzen" und dann auch veröffentlichen? Ich konnte hier nichts finden oder während ich es google.

Irgendwelche Ideen?

Vielen Dank im Voraus!

Antwort

4

Sie müssen das im IContentRepository verfügbare verwenden.

In meinem Beispiel unten Schwedisch ist die Standardsprache auf der Website

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);