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