在我的网站中,每个项目都有英文版本。现在,如果 Content Language ='Danish'
的用户想要访问“Danish
”语言中不存在的项目。用户实际上什么也看不到,我想做的是,如果该项目不存在所需语言,则获取它的英文版本。
我这样做是为了实现我的目标:
string itemId = "{05B1C498-39D1-40D6-B454-2A3277A6DDF9}";
Item versionItem = Sitecore.Context.Database.GetItem(itemId);
if (versionItem.Versions.Count > 0)
lblOutput.Text = "Item does not exist in desired language";
else
{
versionItem = contextDatabase.GetItem(itemId, Sitecore.Data.Managers.LanguageManager.GetLanguage("en"));
lblOutput.Text = "Here is the item in default English language";
}
这是实现我想要的目标的正确方法吗?因为我担心的是我必须使用此代码来访问每个项目。是否有任何全局设置或类似的东西,以便我可以以“英语
”语言获取该项目(如果它不存在于所需
语言中)。
最佳答案
您可以针对您的情况使用后备语言模块。
https://marketplace.sitecore.net/en/modules/language_fallback.aspx
从第二篇博客文章来看,似乎正在使用 Sitecore 7.2。
随着 Sitecore 7 现已成为常态,并且即将推出 Sitecore 8,我认为是时候运行一些测试并确保所有这些仍然适用于最新公开发布的版本:Sitecore 7.2更新 2(修订版 140526)。
关于c# - 如果项目没有以给定语言显示,Sitecore 获取英文项目的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34990001/