Sitecore Single Language Публикация в многоязычной среде Sitecore

Есть ли способ опубликовать элементы в sitecore для определенного языка, который мы получаем от API, связанного с элементом?

Language[] languages = new Language[] { LanguageManager.GetLanguage("en") };
....
...
Sitecore.Publishing.PublishManager.PublishSmart(master, targetDbs, languages);

У меня есть три языка в Sitecore Env Here, но я хочу, чтобы один элемент публиковался только для языка «en», другой — только для «en-ca», а другой — только для «fr-ca».


person satya prakash sharma    schedule 28.12.2016    source источник
comment
используйте PublishItem отдельно для разных элементов.   -  person Anton    schedule 28.12.2016
comment
@Anton, спасибо за ответ, можно поподробнее.   -  person satya prakash sharma    schedule 28.12.2016
comment
Я имел в виду, что если вам нужно опубликовать определенный элемент на одном языке, а другие элементы для другого языка, и вы знаете, какой элемент должен быть опубликован на каком языке, вы можете использовать Sitecore.Publishing.PublishManager.PublishItem вместо PublishSmart.   -  person Anton    schedule 28.12.2016


Ответы (1)


Вам нужно использовать метод PublishItem и действовать следующим образом:

  1. Получите элементы, которые необходимо опубликовать.
  2. Получите языковые версии каждого элемента, чтобы знать, на каком языке эти элементы должны быть опубликованы.

Пример кода

//Get your Item list here
var itemList = GetItemList();

//Loop in the Item list to get the languages
//Publish the item based on the languages
foreach (var item in itemList)
{
    var languageVersions = item.Languages;

    Sitecore.Publishing.PublishManager.PublishItem(item, targetDb, languageVersions, true, false);
}

Спасибо

person Hishaam Namooya    schedule 03.01.2017
comment
Спасибо @Hishaam, я смог это сделать, и это сработало, но элемент, который я опубликовал только на одном языке, также отображается и на другом языке. diff — это когда я пытаюсь открыть продукт на неопубликованном языке, он перенаправляет меня на его домашнюю страницу, а на опубликованном языке все работает хорошо. Продукт должен отображаться только на опубликованной языковой странице. - person satya prakash sharma; 04.01.2017
comment
Доступна ли другая версия в целевой базе данных? - person Hishaam Namooya; 04.01.2017
comment
Да, все версии присутствуют в целевой базе данных. В редакторе контента я вижу правильную версию, в которой опубликован элемент. Но на сайте он открывается на всех языках. - person satya prakash sharma; 09.01.2017
comment
Если все версии элементов были опубликованы в целевой базе данных, она откроется на активном сайте. - person Hishaam Namooya; 09.01.2017
comment
Проблема возникла из-за проблемы установки в самой среде. Код был в порядке. Спасибо. - person satya prakash sharma; 12.01.2017