对于我的网站:
Sitecore.Context.Language
的输出为da
,Sitecore.Context.ContentLanguage
的输出为en
。
lblTest.Text = Sitecore.Context.Language+" & "+ Sitecore.Context.ContentLanguage;
output: da & en
这两个术语的基本区别是什么?我如何修改它们以使用其他语言?
谢谢!
答案 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);
}