Sitecore.Context.Language 和 Sitecore.Context.ContentLanguage

本文关键字:Sitecore Context ContentLanguage Language | 更新日期: 2023-09-27 18:30:54

对于我的网站:

Sitecore.Context.Language的输出是da

并且Sitecore.Context.ContentLanguage的输出是en.

lblTest.Text = Sitecore.Context.Language+" & "+ Sitecore.Context.ContentLanguage;
output: da & en

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

谢谢!

Sitecore.Context.Language 和 Sitecore.Context.ContentLanguage

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

Sitecore.Context.Language 表示您浏览网站时的上下文语言。

例如,如果您有丹麦语编辑器,则内容语言将是丹麦语。您可以拥有多种上下文语言,因为访问者可以切换其语言。

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

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

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

 Sitecore.Context.Language=yourlanguage;

阅读评论后更新以更改您可以使用的上下文语言:

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