我想在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);