1

SO中已经有两个关于同一主题的问题。哪些是(在 Ektron中创建内容的 XLIFF 文件,在 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 文件,而不是依赖它?

4

1 回答 1

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 中)

于 2013-03-26T13:54:12.280 回答