簡體   English   中英

以特定語言以編程方式創建sitecore項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM