2016-12-28 89 views
1

有沒有什麼辦法可以在sitecore中發佈項目中的某些特定語言,我們從與該項目關聯的API中獲取該語言?Sitecore單一語言發佈在多語言Sitecore環境

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

我有三個語言Sitecore的信封在這裏,但我想一個項目發佈的只是「恩」語言和其他的只是「EN-CA」等只是「FR-CA」。

+0

使用PublishItem分隔爲不同的項目。 – Anton

+0

@安頓,謝謝你的回覆,你能對此更具描述性。 –

+0

我的意思是說,如果你需要用一種語言發佈某個項目和用不同語言發佈的其他項目,並且你知道什麼項目應該發佈到什麼語言,那麼你可以使用Sitecore.Publishing.PublishManager.PublishItem而不是PublishSmart – Anton

回答

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); 
} 

感謝

+0

Thanks @Hishaam,我能夠做到這一點,它的工作原理,但我用一種語言發佈的項目也以其他語言顯示。差異是當我試圖以非發佈語言打開產品時,它會將我重定向到其主頁和發佈的語言,它的效果很好。產品只應在已發佈的語言頁面上顯示。 –

+0

目標數據庫中是否還有其他版本? –

+0

是的所有版本都存在於目標數據庫中。在內容編輯器中,我能夠看到發佈項目的正確版本。但在網站上,它以所有語言打開。 –