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

EPiserver: Get list of available languages for current page

我正在尝试获取 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 ?

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

代码如下所示:

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