EPiserver:获取当前页面可用语言的列表

时间:2019-04-05 12:59:31

标签: c# episerver

我正在尝试获取EPiserver中当前页面的可用语言列表。我目前有以下内容:

public static IHtmlString HrefLangLinks(this PageData currentPage)
        {
            IContentRepository repo = ServiceLocator.Current.GetInstance<IContentRepository>();
            var pageLanguagesBranches = repo.GetLanguageBranches<PageData>(currentPage.ContentLink).ToList();
            var availablePageLanguages = FilterForVisitor.Filter(pageLanguagesBranches).OfType<PageData>();

            // Dictionary<String, String>
            return null;
        }

然而,目前availablePageLanguages包含:{System.Linq.Enumerable.d__95}

如何获取语言名称列表?例如de-DE,en-DE或de-AT吗?

1 个答案:

答案 0 :(得分:1)

要获取特定页面的可用语言,可以从当前页面读取PageData.ExistingLanguages属性。这将为您带来IEnumerable<CultureInfo>的结果。要从每个CultureInfo对象获取语言代码,请阅读CultureInfo.Name属性。

代码如下:

currentPage.ExistingLanguages.Select(culture => culture.Name);