【问题标题】:Get XLIFF file of a Content in Ektron Workarea through API通过 API 获取 Ektron Workarea 中内容的 XLIFF 文件
【发布时间】:2013-01-23 08:14:19
【问题描述】:

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 文件,而不是依赖这个?

【问题讨论】:

    标签: ektron


    【解决方案1】:

    没有“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 中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 2010-12-10
      • 1970-01-01
      相关资源
      最近更新 更多