C# 使用特定语言以编程方式创建sitecore项目

C# 使用特定语言以编程方式创建sitecore项目,c#,sitecore,sitecore6,C#,Sitecore,Sitecore6,我正在尝试以编程方式创建sitecore项。一切正常。但我创建的项目使用的是“EN-GB”语言,而创建的新项目使用的是“EN”语言。是否有一种方法可以在创建项目时设置语言值 var currentDatabase = Sitecore.Configuration.Factory.GetDatabase(selectedItem.Database.Name); if (currentDatabase != null) { var rootItem = curren

我正在尝试以编程方式创建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...
}

在创建项目之前,可以使用以下代码

var language = Sitecore.Globalization.Language.Parse( "en-GB" );    

Sitecore.Context.SetLanguage( language, true );

最后一行将上下文语言设置为en GB。然后,将使用该语言版本创建项目。

如果您试图以en GB格式添加项目,请确保通过此操作获得的“根项目”以en GB格式

Language language;
Language.TryParse("en-GB", out language);
var rootItem = currentDatabase.GetItem(RootItemID, language);
之后,如果您尝试添加一个项目,它将使用该语言。
使用语言切换器也是一个好主意,但在更改语言上下文时要小心。

但为什么不从配置文件中选择默认语言呢?保存的my day buddyroot项目是英文的。