我有一个 Sitecore 解决方案,其中启用了 3 种不同的语言。页面顶部有每种语言的链接。单击此链接后,您将获得当前所在页面(采用所选语言)。
但并非所有页面都被翻译成所有语言。因此,如果我站在英语页面 x 上,并且此页面仅提供英语和德语版本,而没有中文版本,那么不应显示中文链接。
所以问题是 - 如何检查当前项目是否有特定语言的版本?
要查看当前项目是否有版本,您可以执行以下操作:Sitecore.Context.Item.Versions.Count > 0
[更新评论]
我并不认为这是确定某个项目是否具有某种语言版本的最有效方法,但这是可行的:
bool hasVersion = HasLanguageVersion(Sitecore.Context.Item, "en");
private bool HasLanguageVersion(Sitecore.Data.Items.Item item, string languageName)
{
var language = item.Languages.FirstOrDefault(l => l.Name == languageName);
if (language != null)
{
var languageSpecificItem = global::Sitecore.Context.Database.GetItem(item.ID, language);
if (languageSpecificItem != null && languageSpecificItem.Versions.Count > 0)
{
return true;
}
}
return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)