是否检查是否存在当前语言的项目? [英] Check if items exist in the current language?

查看:13
本文介绍了是否检查是否存在当前语言的项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个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;
}

这篇关于是否检查是否存在当前语言的项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆