关于同一主题,SO中已经有两个问题。 哪些是(Creating XLIFF file of a Content in Ektron,Content export in ektron)。 由于两个线程都没有结束,我在这里讨论相同的主题,但没有更多细节。
我需要通过ektron用于提供相同选项的API生成工作区中特定内容的XLIFF文件。 我已经浏览了相应的工作区文件和数据库中的相应表。 但是无法弄清楚XLIFF zip文件是否存储在某处。像它这样的类似的文件并没有存储在任何物理目录中。它也没有作为XLIFF文件存储在任何表格中。我需要拉出内容的XLIFF文件使用API,我该如何实现? 当我在工作区文件中调查时,XLIFF通过以下方式生成: 取决于内容和语言的选择,
<div class="ektronBorder">
<iframe src="localizationjobs.aspx" height="360" width="100%" title="History"></iframe>
</div>
我是否可以通过API生成和存储XLIFF文件而不是依赖于此?
答案 0 :(得分:0)
没有“1函数”api来执行这两个作业,但是要导出到xliff,以下代码块应该可以帮助你入门,你需要更改一些变量名/引用:
Ektron.Cms.BusinessObjects.Localization.L10nManager l10nMgr = new Ektron.Cms.BusinessObjects.Localization.L10nManager(this.requestInfoRef);
LocalizationExportJob exportJob = this.CreateExportJob(title, l10nMgr);
exportJob.XliffVersion = xliffVersion;
exportJob.MaxCompressedFileSize = maxCompressedFileSize;
l10nMgr.StartExportForTranslation(exportJob);
private LocalizationExportJob CreateExportJob(string title, Ektron.Cms.BusinessObjects.Localization.L10nManager l10nMgr)
{
long[] taxonomyIds = this.GetSelectedLocaleTaxonomyIds();
if (String.IsNullOrEmpty(title))
{
title = this.defaultJobTitle;
if (taxonomyIds != null && 1 == taxonomyIds.Length)
{
long id = taxonomyIds[0];
Ektron.Cms.API.Content.Taxonomy taxonomyApi = new Ektron.Cms.API.Content.Taxonomy();
Ektron.Cms.TaxonomyRequest req = new Ektron.Cms.TaxonomyRequest();
req.TaxonomyId = id;
req.TaxonomyLanguage = this.commonApi.ContentLanguage;
Ektron.Cms.TaxonomyData data = taxonomyApi.ReadTaxonomy(ref req);
if (data != null)
{
title = data.TaxonomyName;
}
}
}
LocalizationExportJob job = new LocalizationExportJob(title);
job.SourceLanguageId = this.GetSelectedSourceLanguage();
foreach (long id in taxonomyIds)
{
job.AddItem(LocalizableCmsObjectType.LocaleTaxonomy, id);
}
return job;
}
不幸的是,导入更不容易访问,只能在Ektron业务逻辑中找到。 (嵌入在DLL中)