[英]Creating sitecore item programmatically in specific language
我試圖以編程方式創建一個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。 然后將使用該語言版本創建項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.