用特定语言以编程方式创建sitecore项
本文关键字:方式 创建 sitecore 编程 语言 | 更新日期: 2023-09-27 18:26:49
我正在尝试以编程方式创建一个sitecore项。一切都很好。但我创建的项目使用的语言是"EN-GB",但创建的新项目使用的是"EN"。有没有一种方法可以在创建项目时设置语言值。
var currentDatabase = Sitecore.Configuration.Factory.GetDatabase(selectedItem.Database.Name);
if (currentDatabase != null)
{
var rootItem = currentDatabase.GetItem(RootItemPath);
if (rootItem != null)
{
//Create new item
var item = rootItem.Add(selectedItem.Name, CommunityProjectTemplateId);
if (item != null)
{
item.Fields.ReadAll();
item.Editing.BeginEdit();
try
{
//Add values for the fields
item.Fields["Overview Body Content"].Value = selectedItem.GetStringField("ProjectOverview");
}
catch (Exception)
{
item.Editing.EndEdit();
}
}
}
}
在检索根项之前,需要切换上下文语言。
using (new LanguageSwitcher("en-gb"))
{
var rootItem = currentDatabase.GetItem(RootItemPath);
var item = rootItem.Add(selectedItem.Name, CommunityProjectTemplateId);
// Do your editing on item here...
}
如果您试图在en-GB中添加项目,请确保您获得的"根项目"位于en-GB中。
Language language;
Language.TryParse("en-GB", out language);
var rootItem = currentDatabase.GetItem(RootItemID, language);
之后,如果你尝试添加一个项目,它将使用该语言。使用语言切换器也是一个好主意,但在更改语言上下文时要小心。
您可以在创建项目之前使用以下代码
var language = Sitecore.Globalization.Language.Parse( "en-GB" );
Sitecore.Context.SetLanguage( language, true );
最后一行将上下文语言设置为en-GB。然后将使用该语言版本创建项目。