Вы можете получить коллекцию (LanguageCollection
) языков контента элементов (т. Е. Языков, для которых у контента есть элемент).
LanguageCollection collection = ItemManager.GetContentLanguages(Sitecore.Context.Item);
foreach (var lang in collection)
{
var itm = Sitecore.Context.Database.GetItem(Sitecore.Context.Item.ID,lang);
if(itm.Versions.Count > 0)
{
Response.Write("Found language " + lang + "<br />");
}
}
Надеюсь, это поможет:)
NB : Добавить комментарий чувак .. пожалуйста, не вносите случайные изменения в мой ответ.Это высота грубости.
Редактировать: Исправлять .. Оказывается, метод не принимает во внимание версии этого языка .---
, чтобы уточнить, ItemManager.GetContentLanguages не дает вам список языков для данного элемента.В нем приводится список всех языков, которые вы решили включить в свою среду.Под капотом он делает 2 вещи (на основе декомпилированного кода для sitecore 7.2):
- он вызывает LanguageManager.GetLanguages (item.Database));
- добавляет к этому любойязыки, которые еще не были добавлены к шагу 1 путем вызова item.Database.DataManager.DataSource.GetLanguages (item.ID);