Sitecore.Context.Language& Sitecore.Context.ContentLanguage

时间:2016-01-19 11:32:39

标签: c# sitecore sitecore7.2

对于我的网站:

Sitecore.Context.Language的输出为da

Sitecore.Context.ContentLanguage的输出为en

lblTest.Text = Sitecore.Context.Language+" & "+ Sitecore.Context.ContentLanguage;

output: da & en

这两个术语的基本区别是什么?我如何修改它们以使用其他语言?

谢谢!

1 个答案:

答案 0 :(得分:11)

内容语言代表客户端(内容编辑器)中的默认编辑语言。 这是每个网站的网站定义属性。

Sitecore.Context.Language代表网站导航时的上下文语言。

例如,如果您有丹麦编辑,那么内容语言将是丹麦语。 您可以使用多种上下文语言,因为访问者可以切换他们的语言。

Sitecore.Context.Language是一个智能属性,这意味着它遵循延迟加载模式:如果代码在没有设置它时访问此属性,则属性的getter包含确定上下文语言的逻辑。

Sitecore使用httpRequestBegin管道中的Sitecore.Pipelines.HttpRequest.LanguageResolver处理器来确定上下文语言。

如果要更改内容语言,则需要修改网站定义。要更改编程上下文语言,您可以使用:

 Sitecore.Context.Language=yourlanguage;

UPDATE 在我阅读了注释以更改您可以使用的上下文语言后:

 var myItem = Sitecore.Context.Item;
 using (new Sitecore.Globalization.LanguageSwitcher("da-DK"))
 {
    myItem = myItem.Database.GetItem(myItem.ID);
 }