【问题标题】:Sitecore Single Language Publish in multilingual Sitecore EnvironmentSitecore 单语言在多语言 Sitecore 环境中发布
【发布时间】:2016-12-28 07:08:15
【问题描述】:

有什么方法可以在 sitecore 中针对我们从与项目相关联的 API 获得的某种特定语言发布项目?

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

我在 Sitecore Env Here 中使用了三种语言,但我希望仅针对“en”语言发布一个项目,仅针对“en-ca”发布另一个项目,仅针对“fr-ca”发布其他项目。

【问题讨论】:

  • 对不同的项目单独使用 PublishItem。
  • @Anton,感谢您的回复,您能否对此进行更多描述。
  • 我的意思是,如果您需要以一种语言发布某些项目,而其他项目需要以不同语言发布,并且您知道应该将哪些项目发布为哪种语言,那么您可以改用 Sitecore.Publishing.PublishManager.PublishItem PublishSmart

标签: c# asp.net-mvc sitecore sitecore6 sitecore-mvc


【解决方案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);
}

谢谢

【讨论】:

  • 感谢@Hishaam,我能够做到这一点并且它有效,但是我仅以一种语言发布的项目也以其他语言显示。差异是当我尝试以非公开语言打开产品时,它会将我重定向到其主页并在已公开语言上运行良好。产品应仅显示在已发布的语言页面上。
  • 目标数据库中是否也有其他版本?
  • 是的,所有版本都存在于目标数据库中。在内容编辑器中,我可以看到发布项目的正确版本。但在网站上,它以所有语言打开。
  • 如果项目的所有版本都已发布到目标数据库,它将在实时站点上打开
  • 问题是因为环境本身的安装问题。代码很好。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多